[pnfs] [PATCH 1/2] bc_send: always free bc_task and bc_request

Iyer, Rahul Rahul.Iyer at netapp.com
Thu May 24 16:46:16 EDT 2007


Yep! This is a leak. Agreed.
Regards
Rahul
 

> -----Original Message-----
> From: Benny Halevy [mailto:bhalevy at panasas.com] 
> Sent: Thursday, May 24, 2007 8:58 AM
> To: undisclosed-recipients
> Subject: [pnfs] [PATCH 1/2] bc_send: always free bc_task and 
> bc_request
> 
> >From 12f53e293e5dfac4a6296a1f551b68a5fcd51776 Mon Sep 17 
> 00:00:00 2001
> From: Benny Halevy <bhalevy at panasas.com>
> Date: Thu, 24 May 2007 18:58:17 +0300
> Subject: [PATCH 1/2] bc_send: always free bc_task and bc_request
> 
> There seem to be two leaks in bc_send:
> 1. xprt_free_bc_request(req) is called only on the success path
> 2. bc_release_task(bc_task) is called only on the error path
> 
> Signed-off-by: Benny Halevy <bhalevy at panasas.com>
> ---
>  net/sunrpc/bc_svc.c |    4 +---
>  1 files changed, 1 insertions(+), 3 deletions(-)
> 
> diff --git a/net/sunrpc/bc_svc.c b/net/sunrpc/bc_svc.c
> index c713f05..fbea284 100644
> --- a/net/sunrpc/bc_svc.c
> +++ b/net/sunrpc/bc_svc.c
> @@ -155,12 +155,10 @@ int bc_send(struct rpc_rqst *req)
>  	err = xprt->ops->send_request(bc_task);
>  	
>  	bc_release_xprt(bc_task);
> -
> -	xprt_free_bc_request(req);
> -	return 0;
>  out:
>  	bc_task->tk_rqstp = NULL;
>  	bc_release_task(bc_task);
> +	xprt_free_bc_request(req);
>  	return err;
>  }
>  
> -- 
> 1.5.1
> 
> _______________________________________________
> pNFS mailing list
> pNFS at linux-nfs.org
> http://linux-nfs.org/cgi-bin/mailman/listinfo/pnfs
> 


More information about the pNFS mailing list