summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChengyu Song <csong84@gatech.edu>2015-03-25 03:18:49 +0300
committerSteve French <smfrench@gmail.com>2015-05-20 21:08:33 +0300
commit00b8c95b680791a72b4bb14dc371ff1f1daae39c (patch)
tree0b7d97ae5c7dd4d9d11aeb48e3d05d30a61d3743
parent7196ac113a4f38b7ca1a3282fd9edf328bd22287 (diff)
downloadlinux-00b8c95b680791a72b4bb14dc371ff1f1daae39c.tar.xz
cifs: potential missing check for posix_lock_file_wait
posix_lock_file_wait may fail under certain circumstances, and its result is usually checked/returned. But given the complexity of cifs, I'm not sure if the result is intentially left unchecked and always expected to succeed. Signed-off-by: Chengyu Song <csong84@gatech.edu> Acked-by: Jeff Layton <jeff.layton@primarydata.com> Signed-off-by: Steve French <smfrench@gmail.com>
-rw-r--r--fs/cifs/file.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/fs/cifs/file.c b/fs/cifs/file.c
index 5cfa7129d876..3f50cee79df9 100644
--- a/fs/cifs/file.c
+++ b/fs/cifs/file.c
@@ -1552,8 +1552,8 @@ cifs_setlk(struct file *file, struct file_lock *flock, __u32 type,
rc = server->ops->mand_unlock_range(cfile, flock, xid);
out:
- if (flock->fl_flags & FL_POSIX)
- posix_lock_file_wait(file, flock);
+ if (flock->fl_flags & FL_POSIX && !rc)
+ rc = posix_lock_file_wait(file, flock);
return rc;
}