Lines Matching refs:ctx
76 struct blob_resubmit *ctx;
78 ctx = calloc(1, sizeof(struct blob_resubmit));
80 if (ctx == NULL) {
86 ctx->io_type = io_type;
87 ctx->dev = dev;
88 ctx->channel = channel;
89 ctx->payload = payload;
90 ctx->iovcnt = iovcnt;
91 ctx->lba = lba;
92 ctx->src_lba = src_lba;
93 ctx->lba_count = lba_count;
94 ctx->cb_args = cb_args;
95 ctx->bdev_io_wait.bdev = bdev;
96 ctx->bdev_io_wait.cb_fn = bdev_blob_resubmit;
97 ctx->bdev_io_wait.cb_arg = ctx;
98 ctx->ext_io_opts = ext_io_opts;
100 rc = spdk_bdev_queue_io_wait(bdev, channel, &ctx->bdev_io_wait);
104 free(ctx);
287 struct blob_resubmit *ctx = (struct blob_resubmit *) arg;
289 switch (ctx->io_type) {
291 if (ctx->iovcnt > 0) {
292 if (ctx->ext_io_opts) {
293 bdev_blob_readv_ext(ctx->dev, ctx->channel, (struct iovec *) ctx->payload, ctx->iovcnt,
294 ctx->lba, ctx->lba_count, ctx->cb_args, ctx->ext_io_opts);
296 bdev_blob_readv(ctx->dev, ctx->channel, (struct iovec *) ctx->payload, ctx->iovcnt,
297 ctx->lba, ctx->lba_count, ctx->cb_args);
300 bdev_blob_read(ctx->dev, ctx->channel, ctx->payload,
301 ctx->lba, ctx->lba_count, ctx->cb_args);
305 if (ctx->iovcnt > 0) {
306 if (ctx->ext_io_opts) {
307 bdev_blob_writev_ext(ctx->dev, ctx->channel, (struct iovec *) ctx->payload, ctx->iovcnt,
308 ctx->lba, ctx->lba_count, ctx->cb_args, ctx->ext_io_opts);
310 bdev_blob_writev(ctx->dev, ctx->channel, (struct iovec *) ctx->payload, ctx->iovcnt,
311 ctx->lba, ctx->lba_count, ctx->cb_args);
314 bdev_blob_write(ctx->dev, ctx->channel, ctx->payload,
315 ctx->lba, ctx->lba_count, ctx->cb_args);
319 bdev_blob_unmap(ctx->dev, ctx->channel,
320 ctx->lba, ctx->lba_count, ctx->cb_args);
323 bdev_blob_write_zeroes(ctx->dev, ctx->channel,
324 ctx->lba, ctx->lba_count, ctx->cb_args);
327 bdev_blob_copy(ctx->dev, ctx->channel,
328 ctx->lba, ctx->src_lba, ctx->lba_count, ctx->cb_args);
331 SPDK_ERRLOG("Unsupported io type %d\n", ctx->io_type);
335 free(ctx);