| From 146d70caaa1b87f64597743429d7da4b8073d0c9 Mon Sep 17 00:00:00 2001 |
| From: Andy Adamson <andros@netapp.com> |
| Date: Tue, 18 Feb 2014 10:36:05 -0500 |
| Subject: NFS fix error return in nfs4_select_rw_stateid |
| |
| From: Andy Adamson <andros@netapp.com> |
| |
| commit 146d70caaa1b87f64597743429d7da4b8073d0c9 upstream. |
| |
| Do not return an error when nfs4_copy_delegation_stateid succeeds. |
| |
| Signed-off-by: Andy Adamson <andros@netapp.com> |
| 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 <neilb@suse.de> |
| Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| fs/nfs/nfs4state.c | 5 ++++- |
| 1 file changed, 4 insertions(+), 1 deletion(-) |
| |
| --- a/fs/nfs/nfs4state.c |
| +++ b/fs/nfs/nfs4state.c |
| @@ -1015,8 +1015,11 @@ int nfs4_select_rw_stateid(nfs4_stateid |
| 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 |