bdev/raid: Consolidate transition to offline when raid bdev configure failed
When raid bdev goes to offline, manual removal of raid bdev may be required. This patch tries to highlight paths to transit to offline when configuring raid bdev failed. Change-Id: I394984691fdf1d270d4e107e3131b677b42af49e Signed-off-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com> Reviewed-on: https://review.gerrithub.io/421205 Chandler-Test-Pool: SPDK Automated Test System <sys_sgsw@intel.com> Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Kunal Sablok <kunal.sablok@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com>
This commit is contained in:
parent
2b3abb2a33
commit
924a099540
@ -1273,10 +1273,7 @@ raid_bdev_configure(struct raid_bdev *raid_bdev)
|
||||
* have same blocklen
|
||||
*/
|
||||
SPDK_ERRLOG("Blocklen of various bdevs not matching\n");
|
||||
raid_bdev->state = RAID_BDEV_STATE_OFFLINE;
|
||||
TAILQ_REMOVE(&g_spdk_raid_bdev_configuring_list, raid_bdev, link_specific_list);
|
||||
TAILQ_INSERT_TAIL(&g_spdk_raid_bdev_offline_list, raid_bdev, link_specific_list);
|
||||
return -1;
|
||||
goto offline;
|
||||
}
|
||||
}
|
||||
|
||||
@ -1284,10 +1281,7 @@ raid_bdev_configure(struct raid_bdev *raid_bdev)
|
||||
raid_bdev_gen->name = strdup(raid_bdev->raid_bdev_config->name);
|
||||
if (!raid_bdev_gen->name) {
|
||||
SPDK_ERRLOG("Unable to allocate name for raid\n");
|
||||
raid_bdev->state = RAID_BDEV_STATE_OFFLINE;
|
||||
TAILQ_REMOVE(&g_spdk_raid_bdev_configuring_list, raid_bdev, link_specific_list);
|
||||
TAILQ_INSERT_TAIL(&g_spdk_raid_bdev_offline_list, raid_bdev, link_specific_list);
|
||||
return -1;
|
||||
goto offline;
|
||||
}
|
||||
raid_bdev_gen->product_name = "Pooled Device";
|
||||
raid_bdev_gen->write_cache = 0;
|
||||
@ -1324,10 +1318,7 @@ raid_bdev_configure(struct raid_bdev *raid_bdev)
|
||||
*/
|
||||
SPDK_ERRLOG("Unable to register pooled bdev\n");
|
||||
spdk_io_device_unregister(raid_bdev, NULL);
|
||||
raid_bdev->state = RAID_BDEV_STATE_OFFLINE;
|
||||
TAILQ_REMOVE(&g_spdk_raid_bdev_configuring_list, raid_bdev, link_specific_list);
|
||||
TAILQ_INSERT_TAIL(&g_spdk_raid_bdev_offline_list, raid_bdev, link_specific_list);
|
||||
return -1;
|
||||
goto offline;
|
||||
}
|
||||
SPDK_DEBUGLOG(SPDK_LOG_BDEV_RAID, "raid bdev generic %p\n", raid_bdev_gen);
|
||||
TAILQ_REMOVE(&g_spdk_raid_bdev_configuring_list, raid_bdev, link_specific_list);
|
||||
@ -1337,6 +1328,12 @@ raid_bdev_configure(struct raid_bdev *raid_bdev)
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
||||
offline:
|
||||
raid_bdev->state = RAID_BDEV_STATE_OFFLINE;
|
||||
TAILQ_REMOVE(&g_spdk_raid_bdev_configuring_list, raid_bdev, link_specific_list);
|
||||
TAILQ_INSERT_TAIL(&g_spdk_raid_bdev_offline_list, raid_bdev, link_specific_list);
|
||||
return -1;
|
||||
}
|
||||
|
||||
/*
|
||||
|
Loading…
Reference in New Issue
Block a user