From af7c954a8bb7467b52b6e55d40298b087564b659 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Tue, 15 Dec 2009 10:27:48 -0800 Subject: [PATCH] --- yaml --- r: 188655 b: refs/heads/master c: e2885f06ce31d82b556be021acfa2eba160f29cc h: refs/heads/master i: 188653: 3e414365ef3f892e152d6e8c17431e7a7efa15ae 188651: 5bb31dfa966df8e470082d7db450844d47448244 188647: 394543b81f6249e59b1dd320bc191f2decbb886c 188639: 55addc22edfa573175590a53ea77c033121dc20b v: v3 --- [refs] | 2 +- trunk/fs/ceph/mds_client.c | 15 +++++++++------ 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/[refs] b/[refs] index ea0e0e7f5725..bf7561610e3a 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: cf3e5c409b5d66ec66207092a3f7e3e2c42c0f3f +refs/heads/master: e2885f06ce31d82b556be021acfa2eba160f29cc diff --git a/trunk/fs/ceph/mds_client.c b/trunk/fs/ceph/mds_client.c index 29a93fe35f85..d7cecc3366da 100644 --- a/trunk/fs/ceph/mds_client.c +++ b/trunk/fs/ceph/mds_client.c @@ -1597,14 +1597,17 @@ int ceph_mdsc_do_request(struct ceph_mds_client *mdsc, if (!req->r_reply) { mutex_unlock(&mdsc->mutex); if (req->r_timeout) { - err = wait_for_completion_timeout(&req->r_completion, - req->r_timeout); - if (err > 0) - err = 0; - else if (err == 0) + err = (long)wait_for_completion_interruptible_timeout( + &req->r_completion, req->r_timeout); + if (err == 0) req->r_reply = ERR_PTR(-EIO); + else if (err < 0) + req->r_reply = ERR_PTR(err); } else { - wait_for_completion(&req->r_completion); + err = wait_for_completion_interruptible( + &req->r_completion); + if (err) + req->r_reply = ERR_PTR(err); } mutex_lock(&mdsc->mutex); }