This means that ->manage_reshape will be called with reshape ready to
roll.
Also move the current start_reshape call earlier so that it is before
the other ->manage_reshape call.
Signed-off-by: NeilBrown <neilb@suse.de>
changed++;
break;
}
+ if (!rv && level > 1)
+ start_reshape(sub);
sysfs_free(sub);
if (rv)
break;
disks_fixed = 1;
} else if (sub)
disks_fixed = 1;
+
+ if (sub)
+ abort_reshape(sub);
sysfs_free(sub);
if (!disks_fixed || !level_fixed)
break;
}
+ start_reshape(sra);
if (st->ss->external) {
/* metadata handler takes it from here */
ping_manager(container);
fprintf(stderr, Name ": %s: Cannot find a superblock\n",
devname);
rv = 1;
+ abort_reshape(sra);
break;
}
* handling backups of the data...
* This is all done by a forked background process.
*/
- start_reshape(sra);
switch(fork()) {
case 0:
close(fd);