diff options
author | NeilBrown <neilb@suse.de> | 2009-04-14 10:19:02 +1000 |
---|---|---|
committer | NeilBrown <neilb@suse.de> | 2009-04-14 10:19:02 +1000 |
commit | 462906cdeebc07875a4c8653c86ca02c09280f78 (patch) | |
tree | 5af5fdb38d3863f9ca595806d849b68725d7d02b /util.c | |
parent | a9934ce44184660332549965c7d83a6a023ffd33 (diff) | |
download | mdadm-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.c | 3 |
1 files changed, 2 insertions, 1 deletions
@@ -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) |