]> git.baikalelectronics.ru Git - kernel.git/commit
md: clear Blocked flag on failed devices when array is read-only.
authorNeil Brown <neilb@suse.de>
Wed, 17 Jun 2015 02:31:46 +0000 (12:31 +1000)
committerNeilBrown <neilb@suse.de>
Thu, 25 Jun 2015 07:16:49 +0000 (17:16 +1000)
commit0f0d57b7ae6691ae38aa7edb65d48c5b42ce10b6
tree8759fd4e6003feb01a0dd371f05e0b289f737349
parentd4ae29839419a3de083b59df9c19629cd6d8940e
md: clear Blocked flag on failed devices when array is read-only.

The Blocked flag indicates that a device has failed but that this
fact hasn't been recorded in the metadata yet.  Writes to such
devices cannot be allowed until the metadata has been updated.

On a read-only array, the Blocked flag will never be cleared.
This prevents the device being removed from the array.

If the metadata is being handled by the kernel
(i.e. !mddev->external), then we can be sure that if the array is
switch to writable, then a metadata update will happen and will
record the failure.  So we don't need the flag set.

If metadata is externally managed, it is upto the external manager
to clear the 'blocked' flag.

Reported-by: XiaoNi <xni@redhat.com>
Signed-off-by: NeilBrown <neilb@suse.de>
drivers/md/md.c