Lines Matching refs:bdev
11 #include "spdk/bdev.h"
53 struct spdk_bdev bdev;
84 bdev_uring_open(struct bdev_uring *bdev)
88 fd = open(bdev->filename, O_RDWR | O_DIRECT | O_NOATIME);
91 fd = open(bdev->filename, O_RDWR | O_NOATIME);
94 bdev->filename, errno, spdk_strerror(errno));
95 bdev->fd = -1;
100 bdev->fd = fd;
106 dummy_bdev_event_cb(enum spdk_bdev_event_type type, struct spdk_bdev *bdev, void *ctx)
114 struct spdk_bdev *bdev;
124 bdev = spdk_bdev_desc_get_bdev(desc);
125 if (bdev->module != &uring_if) {
130 uring = SPDK_CONTAINEROF(bdev, struct bdev_uring, bdev);
132 blockcnt = uring_size / bdev->blocklen;
134 if (bdev->blockcnt != blockcnt) {
135 SPDK_NOTICELOG("URING device is resized: bdev name %s, old block count %" PRIu64
139 bdev->blockcnt,
141 rc = spdk_bdev_notify_blockcnt_change(bdev, blockcnt);
143 SPDK_ERRLOG("Could not change num blocks for uring bdev: name %s, errno: %d.\n",
155 bdev_uring_close(struct bdev_uring *bdev)
159 if (bdev->fd == -1) {
163 rc = close(bdev->fd);
166 bdev->fd, errno, spdk_strerror(errno));
170 bdev->fd = -1;
327 ret = bdev_uring_readv((struct bdev_uring *)bdev_io->bdev->ctxt,
330 bdev_io->u.bdev.iovs,
331 bdev_io->u.bdev.iovcnt,
332 bdev_io->u.bdev.num_blocks * bdev_io->bdev->blocklen,
333 bdev_io->u.bdev.offset_blocks * bdev_io->bdev->blocklen);
336 ret = bdev_uring_writev((struct bdev_uring *)bdev_io->bdev->ctxt,
339 bdev_io->u.bdev.iovs,
340 bdev_io->u.bdev.iovcnt,
341 bdev_io->u.bdev.num_blocks * bdev_io->bdev->blocklen,
342 bdev_io->u.bdev.offset_blocks * bdev_io->bdev->blocklen);
418 uring = (struct bdev_uring *)bdev_io->bdev->ctxt;
438 range.nr_sectors = (uring->bdev.zone_size << uring->zd.lba_shift);
463 uring = (struct bdev_uring *)bdev_io->bdev->ctxt;
525 uring->bdev.zoned = false;
553 uring->bdev.zoned = true;
566 uring->zd.lba_shift = uring->bdev.required_alignment - SECTOR_SHIFT;
567 uring->bdev.zone_size = (zinfo >> uring->zd.lba_shift);
575 uring->bdev.max_open_zones = uring->bdev.optimal_open_zones = val;
582 uring->bdev.max_active_zones = val;
623 * bdev->required_alignment. If user specified unaligned buffers,
628 bdev_io->u.bdev.num_blocks * bdev_io->bdev->blocklen);
700 bdev_uring_write_json_config(struct spdk_bdev *bdev, struct spdk_json_write_ctx *w)
702 struct bdev_uring *uring = bdev->ctxt;
710 spdk_json_write_named_string(w, "name", bdev->name);
711 spdk_json_write_named_uint32(w, "block_size", bdev->blocklen);
713 spdk_uuid_fmt_lower(uuid_str, sizeof(uuid_str), &bdev->uuid);
736 free(uring->bdev.name);
793 uring->bdev.name = strdup(opts->name);
794 if (!uring->bdev.name) {
797 uring->bdev.product_name = "URING bdev";
798 uring->bdev.module = &uring_if;
800 uring->bdev.write_cache = 0;
833 uring->bdev.blocklen = block_size;
834 uring->bdev.required_alignment = spdk_u32log2(block_size);
841 if (bdev_size % uring->bdev.blocklen != 0) {
843 bdev_size, uring->bdev.blocklen);
847 uring->bdev.blockcnt = bdev_size / uring->bdev.blocklen;
848 uring->bdev.ctxt = uring;
850 uring->bdev.fn_table = &uring_fn_table;
853 spdk_uuid_copy(&uring->bdev.uuid, &opts->uuid);
858 uring->bdev.name);
859 rc = spdk_bdev_register(&uring->bdev);
866 return &uring->bdev;