aboutsummaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorYan, Zheng <zyan@redhat.com>2016-05-13 11:04:33 +0800
committerIlya Dryomov <idryomov@gmail.com>2016-05-26 01:15:40 +0200
commit0e76abf21e769245b6eebb27b439ad014ac49292 (patch)
treef6662693272bcd7b3eda7624d1f92bab2fb8531b /net
parentceph: handle -EAGAIN returned by ceph_update_writeable_page() (diff)
downloadlinux-dev-0e76abf21e769245b6eebb27b439ad014ac49292.tar.xz
linux-dev-0e76abf21e769245b6eebb27b439ad014ac49292.zip
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>
Diffstat (limited to 'net')
-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,
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;