summaryrefslogtreecommitdiff
path: root/debian/patches/0007-Assemble-mask-FAILFAST-and-WRITEMOSTLY-flags-when-fi.patch
diff options
context:
space:
mode:
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.patch43
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
+