diff options
author | Jeff Layton <jlayton@redhat.com> | 2018-03-18 08:37:02 -0400 |
---|---|---|
committer | Anna Schumaker <Anna.Schumaker@Netapp.com> | 2018-04-10 16:06:22 -0400 |
commit | 5656610325a926141625e2d5eed1b0ba57a2e4cb (patch) | |
tree | 15e4f165eb7036dfadd0860f6865dc932893a043 | |
parent | 41a74620185e2c7666c0fc4bfd7ff2f21fd0cb13 (diff) |
nfs4: don't compare clientid in nfs4_wake_lock_waiter
The task is expected to sleep for a while here, and it's possible that
a new EXCHANGE_ID has occurred in the interim, and we were assigned a
new clientid. Since this is a per-client list, there isn't a lot of
value in vetting the clientid on the incoming request.
Signed-off-by: Jeff Layton <jlayton@redhat.com>
Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
-rw-r--r-- | fs/nfs/nfs4proc.c | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c index 5ab28454f117..669ba9211177 100644 --- a/fs/nfs/nfs4proc.c +++ b/fs/nfs/nfs4proc.c | |||
@@ -6626,10 +6626,8 @@ nfs4_wake_lock_waiter(wait_queue_entry_t *wait, unsigned int mode, int flags, vo | |||
6626 | struct nfs_lowner *lowner = &cbnl->cbnl_owner, | 6626 | struct nfs_lowner *lowner = &cbnl->cbnl_owner, |
6627 | *wowner = waiter->owner; | 6627 | *wowner = waiter->owner; |
6628 | 6628 | ||
6629 | /* Only wake if the callback was for the same owner */ | 6629 | /* Only wake if the callback was for the same owner. */ |
6630 | if (lowner->clientid != wowner->clientid || | 6630 | if (lowner->id != wowner->id || lowner->s_dev != wowner->s_dev) |
6631 | lowner->id != wowner->id || | ||
6632 | lowner->s_dev != wowner->s_dev) | ||
6633 | return 0; | 6631 | return 0; |
6634 | 6632 | ||
6635 | /* Make sure it's for the right inode */ | 6633 | /* Make sure it's for the right inode */ |