When Manage.c adds spare, it calls write_init_super() and this function is responsible for closing disk handle (Manage.c:812). For imsm case this handle is reused for managing this disk and handle (due to this it is not closed). As handle was opened with flag O_EXCL, adding disk to md fails on writing to new_dev (md cannot set lock on device). To resolve situation close current handle and open new one without O_EXCL flag. Signed-off-by: Anna Czarnowska <anna.czarnowska@xxxxxxxxx> Signed-off-by: Adam Kwolek <adam.kwolek@xxxxxxxxx> --- super-intel.c | 9 +++++++++ 1 files changed, 9 insertions(+), 0 deletions(-) diff --git a/super-intel.c b/super-intel.c index 7f907ef..0d6d2ee 100644 --- a/super-intel.c +++ b/super-intel.c @@ -3714,6 +3714,7 @@ static int mgmt_disk(struct supertype *st) struct intel_super *super = st->sb; size_t len; struct imsm_update_add_remove_disk *u; + struct dl *d; if (!super->disk_mgmt_list) return 0; @@ -3729,6 +3730,14 @@ static int mgmt_disk(struct supertype *st) u->type = update_add_remove_disk; append_metadata_update(st, u, len); + for (d = super->disk_mgmt_list; d ; d = d->next) { + char buf[PATH_MAX]; + + close(d->fd); + sprintf(buf, "%d:%d", d->major, d->minor); + d->fd = dev_open(buf, O_RDWR | O_DIRECT); + } + return 0; } -- To unsubscribe from this list: send the line "unsubscribe linux-raid" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html