Lines Matching defs:bdev_io

74 static void vbdev_crypto_queue_io(struct spdk_bdev_io *bdev_io,
76 static void _complete_internal_io(struct spdk_bdev_io *bdev_io, bool success, void *cb_arg);
79 static void vbdev_crypto_submit_request(struct spdk_io_channel *ch, struct spdk_bdev_io *bdev_io);
84 struct spdk_bdev_io *bdev_io = spdk_bdev_io_from_ctx(crypto_io);
95 spdk_bdev_io_complete(bdev_io, SPDK_BDEV_IO_STATUS_FAILED);
99 crypto_write(struct crypto_io_channel *crypto_ch, struct spdk_bdev_io *bdev_io)
101 struct vbdev_crypto *crypto_bdev = SPDK_CONTAINEROF(bdev_io->bdev, struct vbdev_crypto,
103 struct crypto_bdev_io *crypto_io = (struct crypto_bdev_io *)bdev_io->driver_ctx;
116 bdev_io, &opts);
120 vbdev_crypto_queue_io(bdev_io, CRYPTO_IO_ENCRYPT_DONE);
122 SPDK_ERRLOG("Failed to submit bdev_io!\n");
130 crypto_encrypt(struct crypto_io_channel *crypto_ch, struct spdk_bdev_io *bdev_io)
132 struct crypto_bdev_io *crypto_io = (struct crypto_bdev_io *)bdev_io->driver_ctx;
144 total_length = bdev_io->u.bdev.num_blocks * blocklen;
149 crypto_io->aux_offset_blocks = bdev_io->u.bdev.offset_blocks;
150 crypto_io->aux_num_blocks = bdev_io->u.bdev.num_blocks;
155 bdev_io->u.bdev.iovs, bdev_io->u.bdev.iovcnt,
156 bdev_io->u.bdev.memory_domain,
157 bdev_io->u.bdev.memory_domain_ctx,
158 bdev_io->u.bdev.offset_blocks, blocklen,
165 spdk_bdev_io_complete(bdev_io, SPDK_BDEV_IO_STATUS_NOMEM);
167 SPDK_ERRLOG("Failed to submit bdev_io!\n");
174 crypto_write(crypto_ch, bdev_io);
178 _complete_internal_io(struct spdk_bdev_io *bdev_io, bool success, void *cb_arg)
189 spdk_bdev_io_complete_base_io_status(orig_io, bdev_io);
190 spdk_bdev_free_io(bdev_io);
193 static void crypto_read(struct crypto_io_channel *crypto_ch, struct spdk_bdev_io *bdev_io);
198 struct spdk_bdev_io *bdev_io = (struct spdk_bdev_io *)arg;
199 struct crypto_bdev_io *crypto_io = (struct crypto_bdev_io *)bdev_io->driver_ctx;
203 crypto_write(crypto_io->crypto_ch, bdev_io);
206 crypto_read(crypto_io->crypto_ch, bdev_io);
214 vbdev_crypto_queue_io(struct spdk_bdev_io *bdev_io, enum crypto_io_resubmit_state state)
216 struct crypto_bdev_io *crypto_io = (struct crypto_bdev_io *)bdev_io->driver_ctx;
219 crypto_io->bdev_io_wait.bdev = bdev_io->bdev;
221 crypto_io->bdev_io_wait.cb_arg = bdev_io;
224 rc = spdk_bdev_queue_io_wait(bdev_io->bdev, crypto_io->crypto_ch->base_ch,
233 crypto_read(struct crypto_io_channel *crypto_ch, struct spdk_bdev_io *bdev_io)
235 struct crypto_bdev_io *crypto_io = (struct crypto_bdev_io *)bdev_io->driver_ctx;
236 struct vbdev_crypto *crypto_bdev = SPDK_CONTAINEROF(bdev_io->bdev, struct vbdev_crypto,
243 opts.memory_domain = bdev_io->u.bdev.memory_domain;
244 opts.memory_domain_ctx = bdev_io->u.bdev.memory_domain_ctx;
247 bdev_io->u.bdev.iovs, bdev_io->u.bdev.iovcnt,
248 bdev_io->u.bdev.offset_blocks, bdev_io->u.bdev.num_blocks,
249 _complete_internal_io, bdev_io, &opts);
253 vbdev_crypto_queue_io(bdev_io, CRYPTO_IO_DECRYPT_DONE);
255 SPDK_ERRLOG("Failed to submit bdev_io!\n");
266 crypto_read_get_buf_cb(struct spdk_io_channel *ch, struct spdk_bdev_io *bdev_io,
270 struct crypto_bdev_io *crypto_io = (struct crypto_bdev_io *)bdev_io->driver_ctx;
281 bdev_io->u.bdev.iovs, bdev_io->u.bdev.iovcnt,
282 bdev_io->u.bdev.memory_domain,
283 bdev_io->u.bdev.memory_domain_ctx,
284 bdev_io->u.bdev.iovs, bdev_io->u.bdev.iovcnt,
285 bdev_io->u.bdev.memory_domain,
286 bdev_io->u.bdev.memory_domain_ctx,
287 bdev_io->u.bdev.offset_blocks, blocklen,
292 spdk_bdev_io_complete(bdev_io, SPDK_BDEV_IO_STATUS_NOMEM);
294 SPDK_ERRLOG("Failed to submit bdev_io!\n");
301 crypto_read(crypto_ch, bdev_io);
306 * and call our cpl callback provided below along with the original bdev_io so that we can
312 vbdev_crypto_submit_request(struct spdk_io_channel *ch, struct spdk_bdev_io *bdev_io)
314 struct vbdev_crypto *crypto_bdev = SPDK_CONTAINEROF(bdev_io->bdev, struct vbdev_crypto,
317 struct crypto_bdev_io *crypto_io = (struct crypto_bdev_io *)bdev_io->driver_ctx;
323 crypto_io->seq = bdev_io->u.bdev.accel_sequence;
325 switch (bdev_io->type) {
327 spdk_bdev_io_get_buf(bdev_io, crypto_read_get_buf_cb,
328 bdev_io->u.bdev.num_blocks * bdev_io->bdev->blocklen);
336 bdev_io->u.bdev.num_blocks * bdev_io->bdev->blocklen,
340 crypto_encrypt(crypto_ch, bdev_io);
345 bdev_io->u.bdev.offset_blocks,
346 bdev_io->u.bdev.num_blocks,
347 _complete_internal_io, bdev_io);
351 bdev_io->u.bdev.offset_blocks,
352 bdev_io->u.bdev.num_blocks,
353 _complete_internal_io, bdev_io);
357 _complete_internal_io, bdev_io);
361 SPDK_ERRLOG("crypto: unknown I/O type %d\n", bdev_io->type);
369 spdk_bdev_io_complete(bdev_io, SPDK_BDEV_IO_STATUS_NOMEM);
371 SPDK_ERRLOG("Failed to submit bdev_io!\n");