module/raid: add asserts in raid_bdev_configure()

This function should only be called for raid_bdev in 'configuring'
state, so convert the 'if' statement that checks that to an assert. Also
add an assert for the number of discovered base bdevs.

Suggested-by: Jim Harris <james.r.harris@intel.com>
Signed-off-by: Artur Paszkiewicz <artur.paszkiewicz@intel.com>
Change-Id: Ib2fdf2af64ff0e9b458af4070321d138508a3df8
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/473966
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
This commit is contained in:
Artur Paszkiewicz 2019-11-12 13:55:03 +01:00 committed by Tomasz Zawadzki
parent 182278c093
commit 94ea87541e

View File

@ -1299,6 +1299,9 @@ raid_bdev_configure(struct raid_bdev *raid_bdev)
struct spdk_bdev *raid_bdev_gen; struct spdk_bdev *raid_bdev_gen;
int rc = 0; int rc = 0;
assert(raid_bdev->state == RAID_BDEV_STATE_CONFIGURING);
assert(raid_bdev->num_base_bdevs_discovered == raid_bdev->num_base_bdevs);
blocklen = raid_bdev->base_bdev_info[0].bdev->blocklen; blocklen = raid_bdev->base_bdev_info[0].bdev->blocklen;
min_blockcnt = raid_bdev->base_bdev_info[0].bdev->blockcnt; min_blockcnt = raid_bdev->base_bdev_info[0].bdev->blockcnt;
for (uint8_t i = 1; i < raid_bdev->num_base_bdevs; i++) { for (uint8_t i = 1; i < raid_bdev->num_base_bdevs; i++) {
@ -1349,7 +1352,7 @@ raid_bdev_configure(struct raid_bdev *raid_bdev)
SPDK_DEBUGLOG(SPDK_LOG_BDEV_RAID, "io device register %p\n", raid_bdev); SPDK_DEBUGLOG(SPDK_LOG_BDEV_RAID, "io device register %p\n", raid_bdev);
SPDK_DEBUGLOG(SPDK_LOG_BDEV_RAID, "blockcnt %lu, blocklen %u\n", raid_bdev_gen->blockcnt, SPDK_DEBUGLOG(SPDK_LOG_BDEV_RAID, "blockcnt %lu, blocklen %u\n", raid_bdev_gen->blockcnt,
raid_bdev_gen->blocklen); raid_bdev_gen->blocklen);
if (raid_bdev->state == RAID_BDEV_STATE_CONFIGURING) {
raid_bdev->state = RAID_BDEV_STATE_ONLINE; raid_bdev->state = RAID_BDEV_STATE_ONLINE;
spdk_io_device_register(raid_bdev, raid_bdev_create_cb, raid_bdev_destroy_cb, spdk_io_device_register(raid_bdev, raid_bdev_create_cb, raid_bdev_destroy_cb,
sizeof(struct raid_bdev_io_channel), sizeof(struct raid_bdev_io_channel),
@ -1366,7 +1369,6 @@ raid_bdev_configure(struct raid_bdev *raid_bdev)
TAILQ_INSERT_TAIL(&g_raid_bdev_configured_list, raid_bdev, state_link); TAILQ_INSERT_TAIL(&g_raid_bdev_configured_list, raid_bdev, state_link);
SPDK_DEBUGLOG(SPDK_LOG_BDEV_RAID, "raid bdev is created with name %s, raid_bdev %p\n", SPDK_DEBUGLOG(SPDK_LOG_BDEV_RAID, "raid bdev is created with name %s, raid_bdev %p\n",
raid_bdev_gen->name, raid_bdev); raid_bdev_gen->name, raid_bdev);
}
return 0; return 0;
} }