Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e2885f06 authored by Sage Weil's avatar Sage Weil
Browse files

ceph: make mds ops interruptible



Signed-off-by: default avatarSage Weil <sage@newdream.net>
parent cf3e5c40
Loading
Loading
Loading
Loading
+9 −6
Original line number Diff line number Diff line
@@ -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);
	}