aboutsummaryrefslogtreecommitdiffstats
path: root/fs
diff options
context:
space:
mode:
Diffstat (limited to 'fs')
-rw-r--r--fs/lockd/svclock.c5
-rw-r--r--fs/locks.c13
2 files changed, 2 insertions, 16 deletions
diff --git a/fs/lockd/svclock.c b/fs/lockd/svclock.c
index e42f0cc6c450..5fb48b4390bd 100644
--- a/fs/lockd/svclock.c
+++ b/fs/lockd/svclock.c
@@ -240,11 +240,6 @@ nlmsvc_delete_block(struct nlm_block *block, int unlock)
240 nlmsvc_remove_block(block); 240 nlmsvc_remove_block(block);
241 if (fl->fl_next) 241 if (fl->fl_next)
242 posix_unblock_lock(file->f_file, fl); 242 posix_unblock_lock(file->f_file, fl);
243 if (unlock) {
244 fl->fl_type = F_UNLCK;
245 posix_lock_file(file->f_file, fl);
246 block->b_granted = 0;
247 }
248 243
249 /* If the block is in the middle of a GRANT callback, 244 /* If the block is in the middle of a GRANT callback,
250 * don't kill it yet. */ 245 * don't kill it yet. */
diff --git a/fs/locks.c b/fs/locks.c
index 250ef53d25ef..75650d52fe60 100644
--- a/fs/locks.c
+++ b/fs/locks.c
@@ -1961,19 +1961,10 @@ EXPORT_SYMBOL(posix_block_lock);
1961void 1961void
1962posix_unblock_lock(struct file *filp, struct file_lock *waiter) 1962posix_unblock_lock(struct file *filp, struct file_lock *waiter)
1963{ 1963{
1964 /*
1965 * A remote machine may cancel the lock request after it's been
1966 * granted locally. If that happens, we need to delete the lock.
1967 */
1968 lock_kernel(); 1964 lock_kernel();
1969 if (waiter->fl_next) { 1965 if (waiter->fl_next)
1970 __locks_delete_block(waiter); 1966 __locks_delete_block(waiter);
1971 unlock_kernel(); 1967 unlock_kernel();
1972 } else {
1973 unlock_kernel();
1974 waiter->fl_type = F_UNLCK;
1975 posix_lock_file(filp, waiter);
1976 }
1977} 1968}
1978 1969
1979EXPORT_SYMBOL(posix_unblock_lock); 1970EXPORT_SYMBOL(posix_unblock_lock);