From 3eabe3ef3b5306eb80391b59f2267dae06979738 Mon Sep 17 00:00:00 2001 From: "Daniel P. Berrange" Date: Fri, 23 Sep 2011 10:40:45 +0100 Subject: [PATCH] --- yaml --- r: 269246 b: refs/heads/master c: 2dba6a911c284603d2085fec1e2d3c142f58a010 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/md/md.c | 8 ++++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index 27ee77af487f..62d485766bbf 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 7e841526263b3e0042a423513147dfd06c8e998d +refs/heads/master: 2dba6a911c284603d2085fec1e2d3c142f58a010 diff --git a/trunk/drivers/md/md.c b/trunk/drivers/md/md.c index 5c95ccb59500..accae4422c06 100644 --- a/trunk/drivers/md/md.c +++ b/trunk/drivers/md/md.c @@ -8075,12 +8075,13 @@ static int md_notify_reboot(struct notifier_block *this, { struct list_head *tmp; mddev_t *mddev; + int need_delay = 0; if ((code == SYS_DOWN) || (code == SYS_HALT) || (code == SYS_POWER_OFF)) { printk(KERN_INFO "md: stopping all md devices.\n"); - for_each_mddev(mddev, tmp) + for_each_mddev(mddev, tmp) { if (mddev_trylock(mddev)) { /* Force a switch to readonly even array * appears to still be in use. Hence @@ -8089,13 +8090,16 @@ static int md_notify_reboot(struct notifier_block *this, md_set_readonly(mddev, 100); mddev_unlock(mddev); } + need_delay = 1; + } /* * certain more exotic SCSI devices are known to be * volatile wrt too early system reboots. While the * right place to handle this issue is the given * driver, we do want to have a safe RAID driver ... */ - mdelay(1000*1); + if (need_delay) + mdelay(1000*1); } return NOTIFY_DONE; }