md: ensure metadata is writen after raid level change.
authorNeilBrown <neilb@suse.de>
Tue, 14 Jan 2014 04:17:03 +0000 (15:17 +1100)
committerNeilBrown <neilb@suse.de>
Tue, 14 Jan 2014 05:44:21 +0000 (16:44 +1100)
commit830778a180f268ac106f072b8aad793a79088c87
treee828d1bb71af9743b4912c0bc1b1f8056d7328da
parent0b59bb6422e43ad0534073e2cbc4d0f52720da88
md: ensure metadata is writen after raid level change.

level_store() currently does not make sure the metadata is
updates to reflect the new raid level.  It simply sets MD_CHANGE_DEVS.

Any level with a ->thread will quickly notice this and update the
metadata.  However RAID0 and Linear do not have a thread so no
metadata update happens until the array is stopped.  At that point the
metadata is written.

This is later that we would like.  While the delay doesn't risk any
data it can cause confusion.  So if there is no md thread, immediately
update the metadata after a level change.

Reported-by: Richard Michael <rmichael@edgeofthenet.org>
Signed-off-by: NeilBrown <neilb@suse.de>
drivers/md/md.c