From 923324f06695e36c813d6f84f82af26a38ed25b4 Mon Sep 17 00:00:00 2001 From: NeilBrown Date: Wed, 26 Oct 2005 01:58:58 -0700 Subject: [PATCH] --- yaml --- r: 10096 b: refs/heads/master c: 8712e553562bbbed9b3a99370f08e9bc25908a76 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/md/md.c | 10 ++++++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/[refs] b/[refs] index dad3d02cfcc7..74f6c22e69f0 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 6693e74a16ef563960764bd963f1048392135c3c +refs/heads/master: 8712e553562bbbed9b3a99370f08e9bc25908a76 diff --git a/trunk/drivers/md/md.c b/trunk/drivers/md/md.c index e9476075aa13..2a8a5696bf8a 100644 --- a/trunk/drivers/md/md.c +++ b/trunk/drivers/md/md.c @@ -3568,7 +3568,8 @@ static void md_do_sync(mddev_t *mddev) mddev->curr_resync = 2; try_again: - if (signal_pending(current)) { + if (signal_pending(current) || + kthread_should_stop()) { flush_signals(current); set_bit(MD_RECOVERY_INTR, &mddev->recovery); goto skip; @@ -3590,8 +3591,9 @@ static void md_do_sync(mddev_t *mddev) */ continue; prepare_to_wait(&resync_wait, &wq, TASK_INTERRUPTIBLE); - if (!signal_pending(current) - && mddev2->curr_resync >= mddev->curr_resync) { + if (!signal_pending(current) && + !kthread_should_stop() && + mddev2->curr_resync >= mddev->curr_resync) { printk(KERN_INFO "md: delaying resync of %s" " until %s has finished resync (they" " share one or more physical units)\n", @@ -3697,7 +3699,7 @@ static void md_do_sync(mddev_t *mddev) } - if (signal_pending(current)) { + if (signal_pending(current) || kthread_should_stop()) { /* * got a signal, exit. */