diff options
Diffstat (limited to 'fs/locks.c')
-rw-r--r-- | fs/locks.c | 13 |
1 files changed, 2 insertions, 11 deletions
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); | |||
1961 | void | 1961 | void |
1962 | posix_unblock_lock(struct file *filp, struct file_lock *waiter) | 1962 | posix_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 | ||
1979 | EXPORT_SYMBOL(posix_unblock_lock); | 1970 | EXPORT_SYMBOL(posix_unblock_lock); |