module/raid: don't support flush or unmap if there is no raid module handler

Change-Id: If248d8b0d00c0f02bbc7b25324d83139267945f3
Signed-off-by: Artur Paszkiewicz <artur.paszkiewicz@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/852
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Paul Luse <paul.e.luse@intel.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Reviewed-by: Darek Stojaczyk <dariusz.stojaczyk@intel.com>
This commit is contained in:
Artur Paszkiewicz 2020-01-28 12:15:10 +01:00 committed by Tomasz Zawadzki
parent 0a5194fadc
commit 1d3ca5c4c0
2 changed files with 8 additions and 1 deletions

View File

@ -488,6 +488,13 @@ _raid_bdev_io_type_supported(struct raid_bdev *raid_bdev, enum spdk_bdev_io_type
{
struct raid_base_bdev_info *base_info;
if (io_type == SPDK_BDEV_IO_TYPE_FLUSH ||
io_type == SPDK_BDEV_IO_TYPE_UNMAP) {
if (raid_bdev->module->submit_null_payload_request == NULL) {
return false;
}
}
RAID_FOR_EACH_BASE_BDEV(raid_bdev, base_info) {
if (base_info->bdev == NULL) {
assert(false);

View File

@ -277,7 +277,7 @@ struct raid_bdev_module {
/* Handler for R/W requests */
void (*submit_rw_request)(struct raid_bdev_io *raid_io);
/* Handler for requests without payload (flush, unmap) */
/* Handler for requests without payload (flush, unmap). Optional. */
void (*submit_null_payload_request)(struct raid_bdev_io *raid_io);
TAILQ_ENTRY(raid_bdev_module) link;