aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeff Layton <jlayton@redhat.com>2016-09-16 16:28:27 -0400
committerJ. Bruce Fields <bfields@redhat.com>2016-09-26 15:20:37 -0400
commit19e4c3477f70843930b328be3bcd16bd17993911 (patch)
treefb9e262b86701bfe54ef22875e652a2b3c6e7292
parentb4c8eb0379c8d3300a54210edd2235fd1e81a8a6 (diff)
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>
-rw-r--r--fs/nfsd/nfs4state.c6
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:
4490 * To finish the open response, we just need to set the rflags. 4490 * To finish the open response, we just need to set the rflags.
4491 */ 4491 */
4492 open->op_rflags = NFS4_OPEN_RESULT_LOCKTYPE_POSIX; 4492 open->op_rflags = NFS4_OPEN_RESULT_LOCKTYPE_POSIX;
4493 if (!(open->op_openowner->oo_flags & NFS4_OO_CONFIRMED) && 4493 if (nfsd4_has_session(&resp->cstate))
4494 !nfsd4_has_session(&resp->cstate)) 4494 open->op_rflags |= NFS4_OPEN_RESULT_MAY_NOTIFY_LOCK;
4495 else if (!(open->op_openowner->oo_flags & NFS4_OO_CONFIRMED))
4495 open->op_rflags |= NFS4_OPEN_RESULT_CONFIRM; 4496 open->op_rflags |= NFS4_OPEN_RESULT_CONFIRM;
4497
4496 if (dp) 4498 if (dp)
4497 nfs4_put_stid(&dp->dl_stid); 4499 nfs4_put_stid(&dp->dl_stid);
4498 if (stp) 4500 if (stp)