diff options
author | Dominique Martinet <[email protected]> | 2015-11-05 18:44:21 -0800 |
---|---|---|
committer | Linus Torvalds <[email protected]> | 2015-11-05 19:34:48 -0800 |
commit | b64787401fd85b66403dd05159a749e333059c0a (patch) | |
tree | c2d662385ee821bc5d7cd4c4b88e2c1c06b55f76 | |
parent | 720abae3d68ae966044497dd9ee5ccf3b16e700c (diff) |
9p: do not overwrite return code when locking fails
If the remote locking fail, we run a local vfs unlock that should work and
return success to userland when we didn't actually lock at all. We need
to tell the application that tried to lock that it didn't get it, not that
all went well.
Signed-off-by: Dominique Martinet <[email protected]>
Cc: Eric Van Hensbergen <[email protected]>
Cc: Ron Minnich <[email protected]>
Cc: Latchesar Ionkov <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
-rw-r--r-- | fs/9p/vfs_file.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/fs/9p/vfs_file.c b/fs/9p/vfs_file.c index 3abc447783aa..6b747394f6f5 100644 --- a/fs/9p/vfs_file.c +++ b/fs/9p/vfs_file.c @@ -231,7 +231,8 @@ out_unlock: if (res < 0 && fl->fl_type != F_UNLCK) { fl_type = fl->fl_type; fl->fl_type = F_UNLCK; - res = posix_lock_file_wait(filp, fl); + /* Even if this fails we want to return the remote error */ + posix_lock_file_wait(filp, fl); fl->fl_type = fl_type; } out: |