Lines Matching defs:bdev_io
200 zone_block_get_zone_info(struct bdev_zone_block *bdev_node, struct spdk_bdev_io *bdev_io)
203 struct spdk_bdev_zone_info *zone_info = bdev_io->u.zone_mgmt.buf;
204 uint64_t zone_id = bdev_io->u.zone_mgmt.zone_id;
210 for (i = 0; i < bdev_io->u.zone_mgmt.num_zones; i++, zone_id += bdev_node->bdev.zone_size) {
218 spdk_bdev_io_complete(bdev_io, SPDK_BDEV_IO_STATUS_SUCCESS);
223 zone_block_open_zone(struct block_zone *zone, struct spdk_bdev_io *bdev_io)
233 spdk_bdev_io_complete(bdev_io, SPDK_BDEV_IO_STATUS_SUCCESS);
242 _zone_block_complete_unmap(struct spdk_bdev_io *bdev_io, bool success, void *cb_arg)
251 spdk_bdev_free_io(bdev_io);
256 struct block_zone *zone, struct spdk_bdev_io *bdev_io)
263 spdk_bdev_io_complete(bdev_io, SPDK_BDEV_IO_STATUS_SUCCESS);
275 spdk_bdev_io_complete(bdev_io, SPDK_BDEV_IO_STATUS_SUCCESS);
281 _zone_block_complete_unmap, bdev_io);
289 zone_block_close_zone(struct block_zone *zone, struct spdk_bdev_io *bdev_io)
298 spdk_bdev_io_complete(bdev_io, SPDK_BDEV_IO_STATUS_SUCCESS);
307 zone_block_finish_zone(struct block_zone *zone, struct spdk_bdev_io *bdev_io)
315 spdk_bdev_io_complete(bdev_io, SPDK_BDEV_IO_STATUS_SUCCESS);
321 struct spdk_bdev_io *bdev_io)
325 zone = zone_block_get_zone_by_slba(bdev_node, bdev_io->u.zone_mgmt.zone_id);
330 switch (bdev_io->u.zone_mgmt.zone_action) {
332 return zone_block_reset_zone(bdev_node, ch, zone, bdev_io);
334 return zone_block_open_zone(zone, bdev_io);
336 return zone_block_close_zone(zone, bdev_io);
338 return zone_block_finish_zone(zone, bdev_io);
345 _zone_block_complete_write(struct spdk_bdev_io *bdev_io, bool success, void *cb_arg)
351 orig_io->u.bdev.offset_blocks = bdev_io->u.bdev.offset_blocks;
358 spdk_bdev_free_io(bdev_io);
363 struct spdk_bdev_io *bdev_io)
366 uint64_t len = bdev_io->u.bdev.num_blocks;
367 uint64_t lba = bdev_io->u.bdev.offset_blocks;
370 bool is_append = bdev_io->type == SPDK_BDEV_IO_TYPE_ZONE_APPEND;
416 zone->zone_info.write_pointer += bdev_io->u.bdev.num_blocks;
424 bdev_io->u.bdev.iovs, bdev_io->u.bdev.iovcnt,
425 bdev_io->u.bdev.md_buf,
426 lba, bdev_io->u.bdev.num_blocks,
427 _zone_block_complete_write, bdev_io);
437 _zone_block_complete_read(struct spdk_bdev_io *bdev_io, bool success, void *cb_arg)
446 spdk_bdev_free_io(bdev_io);
451 struct spdk_bdev_io *bdev_io)
454 uint64_t len = bdev_io->u.bdev.num_blocks;
455 uint64_t lba = bdev_io->u.bdev.offset_blocks;
470 bdev_io->u.bdev.iovs, bdev_io->u.bdev.iovcnt,
471 bdev_io->u.bdev.md_buf,
473 _zone_block_complete_read, bdev_io);
479 zone_block_submit_request(struct spdk_io_channel *ch, struct spdk_bdev_io *bdev_io)
481 struct bdev_zone_block *bdev_node = SPDK_CONTAINEROF(bdev_io->bdev, struct bdev_zone_block, bdev);
485 switch (bdev_io->type) {
487 rc = zone_block_get_zone_info(bdev_node, bdev_io);
490 rc = zone_block_zone_management(bdev_node, dev_ch, bdev_io);
494 rc = zone_block_write(bdev_node, dev_ch, bdev_io);
497 rc = zone_block_read(bdev_node, dev_ch, bdev_io);
500 SPDK_ERRLOG("vbdev_block: unknown I/O type %u\n", bdev_io->type);
508 spdk_bdev_io_complete(bdev_io, SPDK_BDEV_IO_STATUS_NOMEM);
510 SPDK_ERRLOG("ERROR on bdev_io submission!\n");
511 spdk_bdev_io_complete(bdev_io, SPDK_BDEV_IO_STATUS_FAILED);