forked from pool/mdadm
37 lines
988 B
Diff
37 lines
988 B
Diff
|
From 56bbc588f7f0f3bdd3ec23f02109b427c1d3b8f1 Mon Sep 17 00:00:00 2001
|
||
|
From: NeilBrown <neilb@suse.de>
|
||
|
Date: Tue, 25 Feb 2014 15:04:16 +1100
|
||
|
Subject: [PATCH 3/3] Assemble: change load_devices to return most_recent 'st'
|
||
|
value.
|
||
|
|
||
|
This means that
|
||
|
|
||
|
st->ss->getinfo_super(st, content, NULL);
|
||
|
clean = content->array.state & 1;
|
||
|
|
||
|
will get an up-to-date value for 'clean'. This fix allows
|
||
|
tests/03r5assem-failed
|
||
|
to work.
|
||
|
|
||
|
Signed-off-by: NeilBrown <neilb@suse.de>
|
||
|
---
|
||
|
Assemble.c | 6 +++++-
|
||
|
1 file changed, 5 insertions(+), 1 deletion(-)
|
||
|
|
||
|
--- mdadm-3.3.orig/Assemble.c
|
||
|
+++ mdadm-3.3/Assemble.c
|
||
|
@@ -703,8 +703,12 @@ static int load_devices(struct devs *dev
|
||
|
if (devices[devcnt].i.disk.state == 6) {
|
||
|
if (most_recent < 0 ||
|
||
|
devices[devcnt].i.events
|
||
|
- > devices[most_recent].i.events)
|
||
|
+ > devices[most_recent].i.events) {
|
||
|
+ struct supertype *tmp = tst;
|
||
|
+ tst = st;
|
||
|
+ st = tmp;
|
||
|
most_recent = devcnt;
|
||
|
+ }
|
||
|
}
|
||
|
tst->ss->free_super(tst);
|
||
|
free(tst);
|