Lines Matching defs:bdev_io
137 bdev_xnvme_unmap(struct spdk_bdev_io *bdev_io, struct xnvme_cmd_ctx *ctx, struct bdev_xnvme *xnvme)
144 num_blocks = bdev_io->u.bdev.num_blocks;
145 offset_blocks = bdev_io->u.bdev.offset_blocks;
157 assert(bdev_io->u.bdev.iovcnt == 1);
158 range = (struct spdk_nvme_dsm_range *) bdev_io->u.bdev.iovs->iov_base;
187 _xnvme_submit_request(struct spdk_io_channel *ch, struct spdk_bdev_io *bdev_io)
189 struct bdev_xnvme_task *xnvme_task = (struct bdev_xnvme_task *)bdev_io->driver_ctx;
190 struct bdev_xnvme *xnvme = (struct bdev_xnvme *)bdev_io->bdev->ctxt;
195 SPDK_DEBUGLOG(xnvme, "bdev_io : %p, iov_cnt : %d, bdev_xnvme_task : %p\n",
196 bdev_io, bdev_io->u.bdev.iovcnt, (struct bdev_xnvme_task *)bdev_io->driver_ctx);
198 switch (bdev_io->type) {
202 ctx->cmd.nvm.nlb = bdev_io->u.bdev.num_blocks - 1;
203 ctx->cmd.nvm.slba = bdev_io->u.bdev.offset_blocks;
208 ctx->cmd.nvm.nlb = bdev_io->u.bdev.num_blocks - 1;
209 ctx->cmd.nvm.slba = bdev_io->u.bdev.offset_blocks;
214 ctx->cmd.nvm.nlb = bdev_io->u.bdev.num_blocks - 1;
215 ctx->cmd.nvm.slba = bdev_io->u.bdev.offset_blocks;
218 if (bdev_xnvme_unmap(bdev_io, ctx, xnvme)) {
220 spdk_bdev_io_complete(bdev_io, SPDK_BDEV_IO_STATUS_FAILED);
228 spdk_bdev_io_complete(bdev_io, SPDK_BDEV_IO_STATUS_FAILED);
235 err = xnvme_cmd_passv(ctx, bdev_io->u.bdev.iovs, bdev_io->u.bdev.iovcnt,
236 bdev_io->u.bdev.num_blocks * xnvme->bdev.blocklen, NULL, 0, 0);
242 xnvme_ch, bdev_io->u.bdev.iovcnt,
243 bdev_io->u.bdev.num_blocks, bdev_io->u.bdev.offset_blocks);
253 spdk_bdev_io_complete(bdev_io, SPDK_BDEV_IO_STATUS_NOMEM);
261 spdk_bdev_io_complete(bdev_io, SPDK_BDEV_IO_STATUS_FAILED);
267 bdev_xnvme_get_buf_cb(struct spdk_io_channel *ch, struct spdk_bdev_io *bdev_io, bool success)
273 spdk_bdev_io_complete(bdev_io, SPDK_BDEV_IO_STATUS_FAILED);
277 _xnvme_submit_request(ch, bdev_io);
281 bdev_xnvme_submit_request(struct spdk_io_channel *ch, struct spdk_bdev_io *bdev_io)
283 switch (bdev_io->type) {
289 spdk_bdev_io_get_buf(bdev_io, bdev_xnvme_get_buf_cb,
290 bdev_io->u.bdev.num_blocks * bdev_io->bdev->blocklen);
295 spdk_bdev_io_get_buf(bdev_io, bdev_xnvme_get_buf_cb, 256 * 16);
298 _xnvme_submit_request(ch, bdev_io);
302 spdk_bdev_io_complete(bdev_io, SPDK_BDEV_IO_STATUS_FAILED);