Re: [PATCH 1/2] nfs41: fix nfs4_callback_recallslot

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, 2010-01-21 at 14:19 -0500, andros@xxxxxxxxxx wrote: 
> From: Andy Adamson <andros@xxxxxxxxxx>
> 
> Return NFS4_OK if target high slotid equals enforced high slotid.
> Fix nfs_client reference leak.
> 
> Signed-off-by: Andy Adamson <andros@xxxxxxxxxx>
> ---
>  fs/nfs/callback_proc.c |   10 +++++++---
>  1 files changed, 7 insertions(+), 3 deletions(-)
> 
> diff --git a/fs/nfs/callback_proc.c b/fs/nfs/callback_proc.c
> index e5155d9..c79e18c 100644
> --- a/fs/nfs/callback_proc.c
> +++ b/fs/nfs/callback_proc.c
> @@ -381,13 +381,17 @@ unsigned nfs4_callback_recallslot(struct cb_recallslotargs *args, void *dummy)
>  	fc_tbl = &clp->cl_session->fc_slot_table;
>  
>  	status = htonl(NFS4ERR_BAD_HIGH_SLOT);

This is not related directly to your patch, but "sparse" is going to
have a field day with all these scattered around the place. Are there
any plans to clean all this up, and replace those 'int' and 'unsigned'
declarations that are being assigned big ended values with the correct
'__be32' type?

> -	if (args->crsa_target_max_slots >= fc_tbl->max_slots ||
> +	if (args->crsa_target_max_slots > fc_tbl->max_slots ||
>  	    args->crsa_target_max_slots < 1)
> -		goto out;
> +		goto out_putclient;
> +
> +	status = htonl(NFS4_OK);
> +	if (args->crsa_target_max_slots == fc_tbl->max_slots)
> +		goto out_putclient;
>  
>  	fc_tbl->target_max_slots = args->crsa_target_max_slots;
>  	nfs41_handle_recall_slot(clp);
> -	status = htonl(NFS4_OK);
> +out_putclient:
>  	nfs_put_client(clp);	/* balance nfs_find_client */
>  out:
>  	dprintk("%s: exit with status = %d\n", __func__, ntohl(status));


--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux