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 <dominique.martinet@cea.fr>
Cc: Eric Van Hensbergen <ericvh@gmail.com>
Cc: Ron Minnich <rminnich@sandia.gov>
Cc: Latchesar Ionkov <lucho@ionkov.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
Dominique Martinet 2015-11-05 18:44:21 -08:00 коммит произвёл Linus Torvalds
Родитель 720abae3d6
Коммит b64787401f
1 изменённых файлов: 2 добавлений и 1 удалений

Просмотреть файл

@ -231,7 +231,8 @@ out_unlock:
if (res < 0 && fl->fl_type != F_UNLCK) { if (res < 0 && fl->fl_type != F_UNLCK) {
fl_type = fl->fl_type; fl_type = fl->fl_type;
fl->fl_type = F_UNLCK; 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; fl->fl_type = fl_type;
} }
out: out: