summaryrefslogtreecommitdiffstats
path: root/fs/jfs
diff options
context:
space:
mode:
authorJeff Layton <jlayton@redhat.com>2016-09-16 22:28:24 +0200
committerJ. Bruce Fields <bfields@redhat.com>2016-09-26 21:20:36 +0200
commit76d348fadff52e8ad10e7f587a4560df79a5fefe (patch)
tree24b7a65f5fac106041d8bed8459b2a9a5f64bc79 /fs/jfs
parentnfsd: plumb in a CB_NOTIFY_LOCK operation (diff)
downloadlinux-76d348fadff52e8ad10e7f587a4560df79a5fefe.tar.xz
linux-76d348fadff52e8ad10e7f587a4560df79a5fefe.zip
nfsd: have nfsd4_lock use blocking locks for v4.1+ locks
Create a new per-lockowner+per-inode structure that contains a file_lock. Have nfsd4_lock add this structure to the lockowner's list prior to setting the lock. Then call the vfs and request a blocking lock (by setting FL_SLEEP). If we get anything besides FILE_LOCK_DEFERRED back, then we dequeue the block structure and free it. When the next lock request comes in, we'll look for an existing block for the same filehandle and dequeue and reuse it if there is one. When the lock comes free (a'la an lm_notify call), we dequeue it from the lockowner's list and kick off a CB_NOTIFY_LOCK callback to inform the client that it should retry the lock request. Signed-off-by: Jeff Layton <jlayton@redhat.com> Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Diffstat (limited to '')
0 files changed, 0 insertions, 0 deletions