aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYan, Zheng <zyan@redhat.com>2016-05-12 23:04:33 -0400
committerIlya Dryomov <idryomov@gmail.com>2016-05-25 19:15:40 -0400
commit0e76abf21e769245b6eebb27b439ad014ac49292 (patch)
treef6662693272bcd7b3eda7624d1f92bab2fb8531b
parentf0b33df57a5f03c637f75ead7cb4d978c59cc63d (diff)
libceph: make ceph_osdc_wait_request() uninterruptible
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>
-rw-r--r--net/ceph/osd_client.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/net/ceph/osd_client.c b/net/ceph/osd_client.c
index 55cafd3a2ff0..0160d7d09a1e 100644
--- a/net/ceph/osd_client.c
+++ b/net/ceph/osd_client.c
@@ -3454,7 +3454,7 @@ static int wait_request_timeout(struct ceph_osd_request *req,
3454 long left; 3454 long left;
3455 3455
3456 dout("%s req %p tid %llu\n", __func__, req, req->r_tid); 3456 dout("%s req %p tid %llu\n", __func__, req, req->r_tid);
3457 left = wait_for_completion_interruptible_timeout(&req->r_completion, 3457 left = wait_for_completion_killable_timeout(&req->r_completion,
3458 ceph_timeout_jiffies(timeout)); 3458 ceph_timeout_jiffies(timeout));
3459 if (left <= 0) { 3459 if (left <= 0) {
3460 left = left ?: -ETIMEDOUT; 3460 left = left ?: -ETIMEDOUT;