diff options
author | Jeff Layton <jlayton@redhat.com> | 2016-09-16 22:28:27 +0200 |
---|---|---|
committer | J. Bruce Fields <bfields@redhat.com> | 2016-09-26 21:20:37 +0200 |
commit | 19e4c3477f70843930b328be3bcd16bd17993911 (patch) | |
tree | fb9e262b86701bfe54ef22875e652a2b3c6e7292 /fs/nfsd | |
parent | nfs: add a new NFS4_OPEN_RESULT_MAY_NOTIFY_LOCK constant (diff) | |
download | linux-19e4c3477f70843930b328be3bcd16bd17993911.tar.xz linux-19e4c3477f70843930b328be3bcd16bd17993911.zip |
nfsd: set the MAY_NOTIFY_LOCK flag in OPEN replies
If we are using v4.1+, then we can send notification when contended
locks become free. Inform the client of that fact.
Signed-off-by: Jeff Layton <jlayton@redhat.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Diffstat (limited to 'fs/nfsd')
-rw-r--r-- | fs/nfsd/nfs4state.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c index 6c74d9a45163..4062f4fbfc6d 100644 --- a/fs/nfsd/nfs4state.c +++ b/fs/nfsd/nfs4state.c @@ -4490,9 +4490,11 @@ out: * To finish the open response, we just need to set the rflags. */ open->op_rflags = NFS4_OPEN_RESULT_LOCKTYPE_POSIX; - if (!(open->op_openowner->oo_flags & NFS4_OO_CONFIRMED) && - !nfsd4_has_session(&resp->cstate)) + if (nfsd4_has_session(&resp->cstate)) + open->op_rflags |= NFS4_OPEN_RESULT_MAY_NOTIFY_LOCK; + else if (!(open->op_openowner->oo_flags & NFS4_OO_CONFIRMED)) open->op_rflags |= NFS4_OPEN_RESULT_CONFIRM; + if (dp) nfs4_put_stid(&dp->dl_stid); if (stp) |