aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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 e42f0cc6c45..5fb48b4390b 100644
--- a/fs/lockd/svclock.c
+++ b/fs/lockd/svclock.c
@@ -240,11 +240,6 @@ nlmsvc_delete_block(struct nlm_block *block, int unlock)
nlmsvc_remove_block(block);
if (fl->fl_next)
posix_unblock_lock(file->f_file, fl);
- if (unlock) {
- fl->fl_type = F_UNLCK;
- posix_lock_file(file->f_file, fl);
- block->b_granted = 0;
- }
/* If the block is in the middle of a GRANT callback,
* don't kill it yet. */
diff --git a/fs/locks.c b/fs/locks.c
index 250ef53d25e..75650d52fe6 100644
--- a/fs/locks.c
+++ b/fs/locks.c
@@ -1961,19 +1961,10 @@ EXPORT_SYMBOL(posix_block_lock);
void
posix_unblock_lock(struct file *filp, struct file_lock *waiter)
{
- /*
- * A remote machine may cancel the lock request after it's been
- * granted locally. If that happens, we need to delete the lock.
- */
lock_kernel();
- if (waiter->fl_next) {
+ if (waiter->fl_next)
__locks_delete_block(waiter);
- unlock_kernel();
- } else {
- unlock_kernel();
- waiter->fl_type = F_UNLCK;
- posix_lock_file(filp, waiter);
- }
+ unlock_kernel();
}
EXPORT_SYMBOL(posix_unblock_lock);