Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

ceph: add checking of wait_for_completion_killable() return value

The Coverity Scan service has detected the calling of
wait_for_completion_killable() without checking the return
value in ceph_lock_wait_for_completion() [1]. The CID 1636232
defect contains explanation: "If the function returns an error
value, the error value may be mistaken for a normal value.
In ceph_lock_wait_for_completion(): Value returned from
a function is not checked for errors before being used. (CWE-252)".

The patch adds the checking of wait_for_completion_killable()
return value and return the error code from
ceph_lock_wait_for_completion().

[1] https://scan5.scan.coverity.com/#/project-view/64304/10063?selectedIssue=1636232

Signed-off-by: Viacheslav Dubeyko <Slava.Dubeyko@ibm.com>
Reviewed-by: Alex Markuze <amarkuze@redhat.com>
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>

authored by

Viacheslav Dubeyko and committed by
Ilya Dryomov
b7ed1e29 fa073039

+4 -1
+4 -1
fs/ceph/locks.c
··· 221 221 if (err && err != -ERESTARTSYS) 222 222 return err; 223 223 224 - wait_for_completion_killable(&req->r_safe_completion); 224 + err = wait_for_completion_killable(&req->r_safe_completion); 225 + if (err) 226 + return err; 227 + 225 228 return 0; 226 229 } 227 230