diff mbox

pnfsd: Fix unlock bug on error path

Message ID 1358219261-19974-1-git-send-email-ycnian@gmail.com (mailing list archive)
State New, archived
Headers show

Commit Message

ycnian@gmail.com Jan. 15, 2013, 3:07 a.m. UTC
From: Yanchuan Nian <ycnian@gmail.com>

LAYOUTGET procedure fails if the layout requested conflicts with the recalled.
It needs to put the reference and unlock the state before exiting.

Signed-off-by: Yanchuan Nian <ycnian@gmail.com>
---
 fs/nfsd/nfs4pnfsd.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

Comments

Benny Halevy Jan. 21, 2013, 2:43 p.m. UTC | #1
On 2013-01-15 05:07, ycnian@gmail.com wrote:
> From: Yanchuan Nian <ycnian@gmail.com>
> 
> LAYOUTGET procedure fails if the layout requested conflicts with the recalled.
> It needs to put the reference and unlock the state before exiting.
> 
> Signed-off-by: Yanchuan Nian <ycnian@gmail.com>

Good catch. Thanks.
Committing for pnfs-all-3.7 and latest.

Benny

> ---
>  fs/nfsd/nfs4pnfsd.c |    2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)
> 
> diff --git a/fs/nfsd/nfs4pnfsd.c b/fs/nfsd/nfs4pnfsd.c
> index dd7856c..4a1e17b 100644
> --- a/fs/nfsd/nfs4pnfsd.c
> +++ b/fs/nfsd/nfs4pnfsd.c
> @@ -760,7 +760,7 @@ nfs4_pnfs_get_layout(struct nfsd4_pnfs_layoutget *lgp,
>  
>  	if (is_layout_recalled(clp, lgp->lg_fhp, &lgp->lg_seg)) {
>  		nfserr = nfserr_recallconflict;
> -		goto out;
> +		goto out_unlock;
>  	}
>  
>  	/* pre-alloc layout in case we can't merge after we call
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/fs/nfsd/nfs4pnfsd.c b/fs/nfsd/nfs4pnfsd.c
index dd7856c..4a1e17b 100644
--- a/fs/nfsd/nfs4pnfsd.c
+++ b/fs/nfsd/nfs4pnfsd.c
@@ -760,7 +760,7 @@  nfs4_pnfs_get_layout(struct nfsd4_pnfs_layoutget *lgp,
 
 	if (is_layout_recalled(clp, lgp->lg_fhp, &lgp->lg_seg)) {
 		nfserr = nfserr_recallconflict;
-		goto out;
+		goto out_unlock;
 	}
 
 	/* pre-alloc layout in case we can't merge after we call