Lines Matching refs:raid_io
30 struct raid_bdev_io *raid_io = cb_arg; in raid0_bdev_io_completion() local
43 raid_bdev_io_complete(raid_io, SPDK_BDEV_IO_STATUS_FAILED); in raid0_bdev_io_completion()
48 raid_bdev_io_complete(raid_io, SPDK_BDEV_IO_STATUS_SUCCESS); in raid0_bdev_io_completion()
50 raid_bdev_io_complete(raid_io, SPDK_BDEV_IO_STATUS_FAILED); in raid0_bdev_io_completion()
56 static void raid0_submit_rw_request(struct raid_bdev_io *raid_io);
61 struct raid_bdev_io *raid_io = _raid_io; in _raid0_submit_rw_request() local
63 raid0_submit_rw_request(raid_io); in _raid0_submit_rw_request()
76 raid0_submit_rw_request(struct raid_bdev_io *raid_io) in raid0_submit_rw_request() argument
79 struct raid_bdev_io_channel *raid_ch = raid_io->raid_ch; in raid0_submit_rw_request()
80 struct raid_bdev *raid_bdev = raid_io->raid_bdev; in raid0_submit_rw_request()
92 start_strip = raid_io->offset_blocks >> raid_bdev->strip_size_shift; in raid0_submit_rw_request()
93 end_strip = (raid_io->offset_blocks + raid_io->num_blocks - 1) >> in raid0_submit_rw_request()
98 raid_bdev_io_complete(raid_io, SPDK_BDEV_IO_STATUS_FAILED); in raid0_submit_rw_request()
104 offset_in_strip = raid_io->offset_blocks & (raid_bdev->strip_size - 1); in raid0_submit_rw_request()
106 pd_blocks = raid_io->num_blocks; in raid0_submit_rw_request()
122 io_opts.memory_domain = raid_io->memory_domain; in raid0_submit_rw_request()
123 io_opts.memory_domain_ctx = raid_io->memory_domain_ctx; in raid0_submit_rw_request()
124 io_opts.metadata = raid_io->md_buf; in raid0_submit_rw_request()
126 if (raid_io->type == SPDK_BDEV_IO_TYPE_READ) { in raid0_submit_rw_request()
128 raid_io->iovs, raid_io->iovcnt, in raid0_submit_rw_request()
130 raid_io, &io_opts); in raid0_submit_rw_request()
131 } else if (raid_io->type == SPDK_BDEV_IO_TYPE_WRITE) { in raid0_submit_rw_request()
136 ret = raid_bdev_verify_dix_reftag(raid_io->iovs, raid_io->iovcnt, io_opts.metadata, in raid0_submit_rw_request()
137 pd_blocks, bdev, raid_io->offset_blocks); in raid0_submit_rw_request()
140 raid_bdev_io_complete(raid_io, SPDK_BDEV_IO_STATUS_FAILED); in raid0_submit_rw_request()
146 raid_io->iovs, raid_io->iovcnt, in raid0_submit_rw_request()
148 raid_io, &io_opts); in raid0_submit_rw_request()
150 SPDK_ERRLOG("Recvd not supported io type %u\n", raid_io->type); in raid0_submit_rw_request()
155 raid_bdev_queue_io_wait(raid_io, spdk_bdev_desc_get_bdev(base_info->desc), in raid0_submit_rw_request()
160 raid_bdev_io_complete(raid_io, SPDK_BDEV_IO_STATUS_FAILED); in raid0_submit_rw_request()
262 static void raid0_submit_null_payload_request(struct raid_bdev_io *raid_io);
267 struct raid_bdev_io *raid_io = _raid_io; in _raid0_submit_null_payload_request() local
269 raid0_submit_null_payload_request(raid_io); in _raid0_submit_null_payload_request()
275 struct raid_bdev_io *raid_io = cb_arg; in raid0_base_io_complete() local
277 raid_bdev_io_complete_part(raid_io, 1, success ? in raid0_base_io_complete()
296 raid0_submit_null_payload_request(struct raid_bdev_io *raid_io) in raid0_submit_null_payload_request() argument
304 raid_bdev = raid_io->raid_bdev; in raid0_submit_null_payload_request()
308 raid_io->offset_blocks, raid_io->num_blocks); in raid0_submit_null_payload_request()
310 if (raid_io->base_bdev_io_remaining == 0) { in raid0_submit_null_payload_request()
311 raid_io->base_bdev_io_remaining = io_range.n_disks_involved; in raid0_submit_null_payload_request()
314 while (raid_io->base_bdev_io_submitted < io_range.n_disks_involved) { in raid0_submit_null_payload_request()
322 disk_idx = (io_range.start_disk + raid_io->base_bdev_io_submitted) % raid_bdev->num_base_bdevs; in raid0_submit_null_payload_request()
324 base_ch = raid_bdev_channel_get_base_channel(raid_io->raid_ch, disk_idx); in raid0_submit_null_payload_request()
328 switch (raid_io->type) { in raid0_submit_null_payload_request()
332 raid0_base_io_complete, raid_io); in raid0_submit_null_payload_request()
338 raid0_base_io_complete, raid_io); in raid0_submit_null_payload_request()
342 SPDK_ERRLOG("submit request, invalid io type with null payload %u\n", raid_io->type); in raid0_submit_null_payload_request()
348 raid_io->base_bdev_io_submitted++; in raid0_submit_null_payload_request()
350 raid_bdev_queue_io_wait(raid_io, spdk_bdev_desc_get_bdev(base_info->desc), in raid0_submit_null_payload_request()
356 raid_bdev_io_complete(raid_io, SPDK_BDEV_IO_STATUS_FAILED); in raid0_submit_null_payload_request()