]> git.baikalelectronics.ru Git - kernel.git/commitdiff
libceph: make ceph_osdc_wait_request() uninterruptible
authorYan, Zheng <zyan@redhat.com>
Fri, 13 May 2016 03:04:33 +0000 (11:04 +0800)
committerIlya Dryomov <idryomov@gmail.com>
Wed, 25 May 2016 23:15:40 +0000 (01:15 +0200)
Ceph_osdc_wait_request() is used when cephfs issues sync IO. In most
cases, the sync IO should be uninterruptible. The fix is use killale
wait function in ceph_osdc_wait_request().

Signed-off-by: Yan, Zheng <zyan@redhat.com>
net/ceph/osd_client.c

index 55cafd3a2ff0849b716d592460f8be9a02ee90ff..0160d7d09a1e975b3cb8311d202f38462401efbf 100644 (file)
@@ -3454,7 +3454,7 @@ static int wait_request_timeout(struct ceph_osd_request *req,
        long left;
 
        dout("%s req %p tid %llu\n", __func__, req, req->r_tid);
-       left = wait_for_completion_interruptible_timeout(&req->r_completion,
+       left = wait_for_completion_killable_timeout(&req->r_completion,
                                                ceph_timeout_jiffies(timeout));
        if (left <= 0) {
                left = left ?: -ETIMEDOUT;