]> www.infradead.org Git - users/hch/misc.git/commitdiff
ceph: add checking of wait_for_completion_killable() return value
authorViacheslav Dubeyko <Slava.Dubeyko@ibm.com>
Fri, 6 Jun 2025 19:04:32 +0000 (12:04 -0700)
committerIlya Dryomov <idryomov@gmail.com>
Wed, 8 Oct 2025 21:30:46 +0000 (23:30 +0200)
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>
fs/ceph/locks.c

index ebf4ac0055ddc59815e4121550b09ebec08f801b..dd764f9c64b9f9528480bb7fbb98ccd0736329d0 100644 (file)
@@ -221,7 +221,10 @@ static int ceph_lock_wait_for_completion(struct ceph_mds_client *mdsc,
        if (err && err != -ERESTARTSYS)
                return err;
 
-       wait_for_completion_killable(&req->r_safe_completion);
+       err = wait_for_completion_killable(&req->r_safe_completion);
+       if (err)
+               return err;
+
        return 0;
 }