From: Andy Adamson Date: Tue, 18 Feb 2014 15:36:05 +0000 (-0500) Subject: NFS fix error return in nfs4_select_rw_stateid X-Git-Tag: submit/tizen_common/20140905.094502~573 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=f846327dad7a834b79db98e0111badb3121c441e;p=sdk%2Femulator%2Femulator-kernel.git NFS fix error return in nfs4_select_rw_stateid commit 146d70caaa1b87f64597743429d7da4b8073d0c9 upstream. Do not return an error when nfs4_copy_delegation_stateid succeeds. Signed-off-by: Andy Adamson Link: http://lkml.kernel.org/r/1392737765-41942-1-git-send-email-andros@netapp.com Fixes: ef1820f9be27b (NFSv4: Don't try to recover NFSv4 locks when...) Cc: NeilBrown Signed-off-by: Trond Myklebust Signed-off-by: Jiri Slaby --- diff --git a/fs/nfs/nfs4state.c b/fs/nfs/nfs4state.c index ebced8d71157..26c07f9efdb3 100644 --- a/fs/nfs/nfs4state.c +++ b/fs/nfs/nfs4state.c @@ -1015,8 +1015,11 @@ int nfs4_select_rw_stateid(nfs4_stateid *dst, struct nfs4_state *state, if (ret == -EIO) /* A lost lock - don't even consider delegations */ goto out; - if (nfs4_copy_delegation_stateid(dst, state->inode, fmode)) + /* returns true if delegation stateid found and copied */ + if (nfs4_copy_delegation_stateid(dst, state->inode, fmode)) { + ret = 0; goto out; + } if (ret != -ENOENT) /* nfs4_copy_delegation_stateid() didn't over-write * dst, so it still has the lock stateid which we now