summaryrefslogtreecommitdiffstats
path: root/util.c
diff options
context:
space:
mode:
authorNeilBrown <neilb@suse.de>2009-04-14 10:19:02 +1000
committerNeilBrown <neilb@suse.de>2009-04-14 10:19:02 +1000
commit462906cdeebc07875a4c8653c86ca02c09280f78 (patch)
tree5af5fdb38d3863f9ca595806d849b68725d7d02b /util.c
parenta9934ce44184660332549965c7d83a6a023ffd33 (diff)
downloadmdadm-462906cdeebc07875a4c8653c86ca02c09280f78.tar.gz
mdadm-462906cdeebc07875a4c8653c86ca02c09280f78.tar.xz
mdadm-462906cdeebc07875a4c8653c86ca02c09280f78.zip
incremental_container: preserve 'in_sync' flag when adding to existing array.
When building container members with -IR, we need to ensure that devices added to an active array preserve the 'in_sync' status so they don't needlessly get rebuilt. So allow sysfs_add_disk to do this (only works in kernels since 2.6.30) and pass the relevant flag down. Signed-off-by: NeilBrown <neilb@suse.de>
Diffstat (limited to 'util.c')
-rw-r--r--util.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/util.c b/util.c
index 02fc463..35bb91b 100644
--- a/util.c
+++ b/util.c
@@ -1092,7 +1092,8 @@ int add_disk(int mdfd, struct supertype *st,
int rv;
#ifndef MDASSEMBLE
if (st->ss->external) {
- rv = sysfs_add_disk(sra, info);
+ rv = sysfs_add_disk(sra, info,
+ info->disk.state & (1<<MD_DISK_SYNC));
if (! rv) {
struct mdinfo *sd2;
for (sd2 = sra->devs; sd2; sd2=sd2->next)