Commit 546c518f authored by NeilBrown's avatar NeilBrown Committed by Greg Kroah-Hartman

md: avoid possible spinning md thread at shutdown.

commit 0f62fb22 upstream.

If an md array with externally managed metadata (e.g. DDF or IMSM)
is in use, then we should not set safemode==2 at shutdown because:

1/ this is ineffective: user-space need to be involved in any 'safemode' handling,
2/ The safemode management code doesn't cope with safemode==2 on external metadata
   and md_check_recover enters an infinite loop.

Even at shutdown, an infinite-looping process can be problematic, so this
could cause shutdown to hang.
Signed-off-by: default avatarNeilBrown <neilb@suse.de>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 11f87a6a
...@@ -8167,7 +8167,8 @@ static int md_notify_reboot(struct notifier_block *this, ...@@ -8167,7 +8167,8 @@ static int md_notify_reboot(struct notifier_block *this,
if (mddev_trylock(mddev)) { if (mddev_trylock(mddev)) {
if (mddev->pers) if (mddev->pers)
__md_stop_writes(mddev); __md_stop_writes(mddev);
mddev->safemode = 2; if (mddev->persistent)
mddev->safemode = 2;
mddev_unlock(mddev); mddev_unlock(mddev);
} }
need_delay = 1; need_delay = 1;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment