Assemble: mask FAILFAST and WRITEMOSTLY flags when finding the most recent device
If devices[].i.disk.state has MD_DISK_FAILFAST or MD_DISK_WRITEMOSTLY flag, it cannot be the most recent device. Both flags should be masked before checking the state. Reviewed-by: NeilBrown <neilb@suse.com> Signed-off-by: Gioh Kim <gi-oh.kim@cloud.ionos.com> Signed-off-by: Jes Sorensen <jsorensen@fb.com>
This commit is contained in:
parent
d7a1fda276
commit
563ac10865
|
@ -578,6 +578,7 @@ static int load_devices(struct devs *devices, char *devmap,
|
|||
struct supertype *tst;
|
||||
int i;
|
||||
int dfd;
|
||||
int disk_state;
|
||||
|
||||
if (tmpdev->used != 1)
|
||||
continue;
|
||||
|
@ -711,7 +712,9 @@ static int load_devices(struct devs *devices, char *devmap,
|
|||
devices[devcnt].i.disk.major = major(stb.st_rdev);
|
||||
devices[devcnt].i.disk.minor = minor(stb.st_rdev);
|
||||
|
||||
if (devices[devcnt].i.disk.state == 6) {
|
||||
disk_state = devices[devcnt].i.disk.state & ~((1<<MD_DISK_FAILFAST) |
|
||||
(1<<MD_DISK_WRITEMOSTLY));
|
||||
if (disk_state == ((1<<MD_DISK_ACTIVE) | (1<<MD_DISK_SYNC))) {
|
||||
if (most_recent < 0 ||
|
||||
devices[devcnt].i.events
|
||||
> devices[most_recent].i.events) {
|
||||
|
|
Loading…
Reference in New Issue