Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Leap:15.2
mdadm
0007-Assemble-mask-FAILFAST-and-WRITEMOSTLY-fla...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 0007-Assemble-mask-FAILFAST-and-WRITEMOSTLY-flags-when-fi.patch of Package mdadm
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] Assemble: mask FAILFAST and WRITEMOSTLY flags when finding the most recent device Git-commit: 563ac108659980b3d1e226fe416254a86656235f Patch-mainline: mdadm-4.1+ References: jsc#SLE-10078, jsc#SLE-9348 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> Signed-off-by: Coly Li <colyli@suse.de> --- Assemble.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Assemble.c b/Assemble.c index f39c9e1..9f75c68 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.25.0
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor