+26
−6
+20
−50
Loading
Change the behavior of construct_raid_bdev RPC to be consistent with other bdev modules. Create a config of raid bdev first. Then create a raid bdev based on the config. If both succeed, the config and the raid bdev are not removed even if any failure occur later in construct_raid_bdev RPC. Otherwise, both are removed and return failure. During iteration of adding base bdevs in construct_raid_bdev RPC, - skip any nonexistent bdev and move to the next base bdev. - if adding any base bdev fails, move to the next bdev. - if adding base bdevs don't fail but any base bdev doesn't exist, the raid bdev is in the configuring state and return success. - if adding base bdev fails, the raid bdev is in the configuring state and return failure. - if all adding base bdevs succeed, configure the raid bdev. If configuring the raid bdev fails, move the raid bdev to the offline state and return failure. If configuring the raid bdev succeed, return success. check_and_remove_raid_bdev() becomes unused in raid_bdev_rpc.c but is still necessary in UT. Hence move this function to UT. In UT, finding a raid bdev config by name becomes necessary. Hence factor out the iteration to a function and use the function in UT. Change-Id: Ifa36967bdc987d97030e3a4e36684cb37b329d4e Signed-off-by:Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com> Reviewed-on: https://review.gerrithub.io/423622 Tested-by:
SPDK CI Jenkins <sys_sgci@intel.com> Chandler-Test-Pool: SPDK Automated Test System <sys_sgsw@intel.com> Reviewed-by:
Kunal Sablok <kunal.sablok@intel.com> Reviewed-by:
Ben Walker <benjamin.walker@intel.com> Reviewed-by:
Jim Harris <james.r.harris@intel.com>