From 7fe548cdc45a80a798afee3b0755fc74747e1b99 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Thu, 16 Jul 2009 16:44:07 -0700 Subject: [PATCH] kclient: respond to control-c on slow mount --- src/kernel/super.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/kernel/super.c b/src/kernel/super.c index b6dc6e1f3e435..8e2bd41e3325c 100644 --- a/src/kernel/super.c +++ b/src/kernel/super.c @@ -773,7 +773,7 @@ static int ceph_mount(struct ceph_client *client, struct vfsmount *mnt, } /* send mount request, and wait for mon, mds, and osd maps */ - while (!have_all_maps(client)) { + while (!have_all_maps(client) && !client->mount_err) { err = -EIO; if (timeout && time_after_eq(jiffies, started + timeout)) goto out; @@ -800,7 +800,7 @@ static int ceph_mount(struct ceph_client *client, struct vfsmount *mnt, err = wait_event_interruptible_timeout(client->mount_wq, client->mount_err || have_all_maps(client), request_interval); - if (err == -EINTR) + if (err == -EINTR || err == -ERESTARTSYS) goto out; if (client->mount_err) { err = client->mount_err; -- 2.39.5