Assemble/super0: allow non-in-sync devices to be assembled without complaint.
Other metadata formats already did not worry about whether 'sync' was missing or not. super0 needs that now, but only for 0.91 metadata that is undergoing reshape. Signed-off-by: NeilBrown <neilb@suse.de>
This commit is contained in:
parent
f22385f982
commit
672ca1b727
9
super0.c
9
super0.c
|
@ -478,7 +478,14 @@ static int update_super0(struct supertype *st, struct mdinfo *info,
|
|||
if (strcmp(update, "assemble")==0) {
|
||||
int d = info->disk.number;
|
||||
int wonly = sb->disks[d].state & (1<<MD_DISK_WRITEMOSTLY);
|
||||
if ((sb->disks[d].state & ~(1<<MD_DISK_WRITEMOSTLY))
|
||||
int mask = (1<<MD_DISK_WRITEMOSTLY);
|
||||
int add = 0;
|
||||
if (sb->minor_version >= 91)
|
||||
/* During reshape we don't insist on everything
|
||||
* being marked 'sync'
|
||||
*/
|
||||
add = (1<<MD_DISK_SYNC);
|
||||
if (((sb->disks[d].state & ~mask) | add)
|
||||
!= info->disk.state) {
|
||||
sb->disks[d].state = info->disk.state | wonly;
|
||||
rv = 1;
|
||||
|
|
Loading…
Reference in New Issue