diff options
author | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-05-07 15:34:24 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-05-07 15:34:24 -0400 |
commit | 2d56d3c43cc97ae48586745556f5a5b564d61582 (patch) | |
tree | 28f2edc1e69b79e94d99023041dd0358861b6956 /fs/nfs | |
parent | 0f9008ef38d5a6305d94bbdd8f20d68fc75c63b6 (diff) | |
parent | 586759f03e2e9031ac5589912a51a909ed53c30a (diff) |
Merge branch 'server-cluster-locking-api' of git://linux-nfs.org/~bfields/linux
* 'server-cluster-locking-api' of git://linux-nfs.org/~bfields/linux:
gfs2: nfs lock support for gfs2
lockd: add code to handle deferred lock requests
lockd: always preallocate block in nlmsvc_lock()
lockd: handle test_lock deferrals
lockd: pass cookie in nlmsvc_testlock
lockd: handle fl_grant callbacks
lockd: save lock state on deferral
locks: add fl_grant callback for asynchronous lock return
nfsd4: Convert NFSv4 to new lock interface
locks: add lock cancel command
locks: allow {vfs,posix}_lock_file to return conflicting lock
locks: factor out generic/filesystem switch from setlock code
locks: factor out generic/filesystem switch from test_lock
locks: give posix_test_lock same interface as ->lock
locks: make ->lock release private data before returning in GETLK case
locks: create posix-to-flock helper functions
locks: trivial removal of unnecessary parentheses
Diffstat (limited to 'fs/nfs')
-rw-r--r-- | fs/nfs/file.c | 7 | ||||
-rw-r--r-- | fs/nfs/nfs4proc.c | 1 |
2 files changed, 2 insertions, 6 deletions
diff --git a/fs/nfs/file.c b/fs/nfs/file.c index 8e66b5a2d490..5eaee6dd040b 100644 --- a/fs/nfs/file.c +++ b/fs/nfs/file.c | |||
@@ -391,17 +391,12 @@ out_swapfile: | |||
391 | 391 | ||
392 | static int do_getlk(struct file *filp, int cmd, struct file_lock *fl) | 392 | static int do_getlk(struct file *filp, int cmd, struct file_lock *fl) |
393 | { | 393 | { |
394 | struct file_lock cfl; | ||
395 | struct inode *inode = filp->f_mapping->host; | 394 | struct inode *inode = filp->f_mapping->host; |
396 | int status = 0; | 395 | int status = 0; |
397 | 396 | ||
398 | lock_kernel(); | 397 | lock_kernel(); |
399 | /* Try local locking first */ | 398 | /* Try local locking first */ |
400 | if (posix_test_lock(filp, fl, &cfl)) { | 399 | if (posix_test_lock(filp, fl)) { |
401 | fl->fl_start = cfl.fl_start; | ||
402 | fl->fl_end = cfl.fl_end; | ||
403 | fl->fl_type = cfl.fl_type; | ||
404 | fl->fl_pid = cfl.fl_pid; | ||
405 | goto out; | 400 | goto out; |
406 | } | 401 | } |
407 | 402 | ||
diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c index 3b5ca1b15fe9..d6a30e965787 100644 --- a/fs/nfs/nfs4proc.c +++ b/fs/nfs/nfs4proc.c | |||
@@ -3017,6 +3017,7 @@ static int _nfs4_proc_getlk(struct nfs4_state *state, int cmd, struct file_lock | |||
3017 | case -NFS4ERR_DENIED: | 3017 | case -NFS4ERR_DENIED: |
3018 | status = 0; | 3018 | status = 0; |
3019 | } | 3019 | } |
3020 | request->fl_ops->fl_release_private(request); | ||
3020 | out: | 3021 | out: |
3021 | up_read(&clp->cl_sem); | 3022 | up_read(&clp->cl_sem); |
3022 | return status; | 3023 | return status; |