diff options
Diffstat (limited to 'debian/patches/0007-Assemble-mask-FAILFAST-and-WRITEMOSTLY-flags-when-fi.patch')
-rw-r--r-- | debian/patches/0007-Assemble-mask-FAILFAST-and-WRITEMOSTLY-flags-when-fi.patch | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/debian/patches/0007-Assemble-mask-FAILFAST-and-WRITEMOSTLY-flags-when-fi.patch b/debian/patches/0007-Assemble-mask-FAILFAST-and-WRITEMOSTLY-flags-when-fi.patch new file mode 100644 index 00000000..22489a55 --- /dev/null +++ b/debian/patches/0007-Assemble-mask-FAILFAST-and-WRITEMOSTLY-flags-when-fi.patch @@ -0,0 +1,43 @@ +From 563ac108659980b3d1e226fe416254a86656235f Mon Sep 17 00:00:00 2001 +From: Gioh Kim <gi-oh.kim@cloud.ionos.com> +Date: Tue, 6 Nov 2018 16:20:17 +0100 +Subject: [PATCH 07/11] 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> +--- + Assemble.c | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/Assemble.c b/Assemble.c +index f39c9e1c..9f75c68c 100644 +--- a/Assemble.c ++++ b/Assemble.c +@@ -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) { +-- +2.19.1 + |