diff options
author | Yan, Zheng <zyan@redhat.com> | 2016-05-12 23:04:33 -0400 |
---|---|---|
committer | Ilya Dryomov <idryomov@gmail.com> | 2016-05-25 19:15:40 -0400 |
commit | 0e76abf21e769245b6eebb27b439ad014ac49292 (patch) | |
tree | f6662693272bcd7b3eda7624d1f92bab2fb8531b | |
parent | f0b33df57a5f03c637f75ead7cb4d978c59cc63d (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.c | 2 |
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; |