Commit 182278c0 authored by Artur Paszkiewicz's avatar Artur Paszkiewicz Committed by Tomasz Zawadzki
Browse files

module/raid: function pointers for submit_request in raid_bdev_module

parent 6ba11b19
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -415,7 +415,7 @@ raid_bdev_get_buf_cb(struct spdk_io_channel *ch, struct spdk_bdev_io *bdev_io,
		return;
	}

	raid0_submit_rw_request(raid_io);
	raid_io->raid_bdev->module->submit_rw_request(raid_io);
}

/*
@@ -446,7 +446,7 @@ raid_bdev_submit_request(struct spdk_io_channel *ch, struct spdk_bdev_io *bdev_i
				     bdev_io->u.bdev.num_blocks * bdev_io->bdev->blocklen);
		break;
	case SPDK_BDEV_IO_TYPE_WRITE:
		raid0_submit_rw_request(raid_io);
		raid_io->raid_bdev->module->submit_rw_request(raid_io);
		break;

	case SPDK_BDEV_IO_TYPE_RESET:
@@ -455,7 +455,7 @@ raid_bdev_submit_request(struct spdk_io_channel *ch, struct spdk_bdev_io *bdev_i

	case SPDK_BDEV_IO_TYPE_FLUSH:
	case SPDK_BDEV_IO_TYPE_UNMAP:
		raid0_submit_null_payload_request(raid_io);
		raid_io->raid_bdev->module->submit_null_payload_request(raid_io);
		break;

	default:
+6 −4
Original line number Diff line number Diff line
@@ -253,6 +253,12 @@ struct raid_bdev_module {
	/* RAID level implemented by this module */
	enum raid_level level;

	/* Handler for R/W requests */
	void (*submit_rw_request)(struct raid_bdev_io *raid_io);

	/* Handler for requests without payload (flush, unmap) */
	void (*submit_null_payload_request)(struct raid_bdev_io *raid_io);

	TAILQ_ENTRY(raid_bdev_module) link;
};

@@ -268,10 +274,6 @@ __RAID_MODULE_REGISTER(__LINE__)(void) \
    raid_bdev_module_list_add(_module);					\
}

void
raid0_submit_rw_request(struct raid_bdev_io *raid_io);
void
raid0_submit_null_payload_request(struct raid_bdev_io *raid_io);
void
raid_bdev_base_io_completion(struct spdk_bdev_io *bdev_io, bool success, void *cb_arg);
void
+10 −2
Original line number Diff line number Diff line
@@ -65,6 +65,9 @@ raid0_bdev_io_completion(struct spdk_bdev_io *bdev_io, bool success, void *cb_ar
	}
}

static void
raid0_submit_rw_request(struct raid_bdev_io *raid_io);

static void
_raid0_submit_rw_request(void *_raid_io)
{
@@ -82,7 +85,7 @@ _raid0_submit_rw_request(void *_raid_io)
 * returns:
 * none
 */
void
static void
raid0_submit_rw_request(struct raid_bdev_io *raid_io)
{
	struct spdk_bdev_io		*bdev_io = spdk_bdev_io_from_ctx(raid_io);
@@ -248,6 +251,9 @@ _raid0_split_io_range(struct raid_bdev_io_range *io_range, uint8_t disk_idx,
	*_nblocks_in_disk = nblocks_in_disk;
}

static void
raid0_submit_null_payload_request(struct raid_bdev_io *raid_io);

static void
_raid0_submit_null_payload_request(void *_raid_io)
{
@@ -267,7 +273,7 @@ _raid0_submit_null_payload_request(void *_raid_io)
 * returns:
 * none
 */
void
static void
raid0_submit_null_payload_request(struct raid_bdev_io *raid_io)
{
	struct spdk_bdev_io		*bdev_io;
@@ -336,6 +342,8 @@ raid0_submit_null_payload_request(struct raid_bdev_io *raid_io)

static struct raid_bdev_module g_raid0_module = {
	.level = RAID0,
	.submit_rw_request = raid0_submit_rw_request,
	.submit_null_payload_request = raid0_submit_null_payload_request,
};
RAID_MODULE_REGISTER(&g_raid0_module)