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

Commit 0f62fb22 authored by NeilBrown's avatar NeilBrown
Browse files

md: avoid possible spinning md thread at shutdown.



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.

Cc: stable@vger.kernel.org (any kernel)
Signed-off-by: default avatarNeilBrown <neilb@suse.de>
parent cc13b1d1
Loading
Loading
Loading
Loading
+2 −1
Original line number Original line Diff line number Diff line
@@ -8516,6 +8516,7 @@ 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);
			if (mddev->persistent)
				mddev->safemode = 2;
				mddev->safemode = 2;
			mddev_unlock(mddev);
			mddev_unlock(mddev);
		}
		}