path: root/drivers/nvme/host/nvme.h
diff options
authorPankaj Raghav <>2021-12-20 19:47:34 +0530
committerJens Axboe <>2021-12-21 09:38:25 -0700
commit7567defdb3c6a81e4114a03ddf3d6c158df81a76 (patch)
tree58db2804294104872c606b4f29a7e44543370b3c /drivers/nvme/host/nvme.h
parent8d684aa889d335d791e6c7adeb070345bfbba26a (diff)
nvme: Add async passthru polling supportnvme-passthru-wip.2
IO_URING already has polling support for read and write. This patch extends that support for uring cmd passthu. The unused flag in uring_cmd struct is used to indicate if the completion should be polled. If device side polling is not enabled, then the submission request will fallback to a non-polled request. Signed-off-by: Pankaj Raghav <> Link: Signed-off-by: Jens Axboe <>
Diffstat (limited to 'drivers/nvme/host/nvme.h')
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/nvme/host/nvme.h b/drivers/nvme/host/nvme.h
index 56a7cc8421fc..730ada8a3e8e 100644
--- a/drivers/nvme/host/nvme.h
+++ b/drivers/nvme/host/nvme.h
@@ -752,8 +752,12 @@ long nvme_dev_ioctl(struct file *file, unsigned int cmd,
unsigned long arg);
int nvme_ns_chr_async_cmd(struct io_uring_cmd *ucmd,
enum io_uring_cmd_flags flags);
+int nvme_iopoll(struct kiocb *kiocb, struct io_comp_batch *iob,
+ unsigned int flags);
int nvme_ns_head_chr_async_cmd(struct io_uring_cmd *ucmd,
enum io_uring_cmd_flags flags);
+int nvme_ns_head_iopoll(struct kiocb *kiocb, struct io_comp_batch *iob,
+ unsigned int flags);
int nvme_getgeo(struct block_device *bdev, struct hd_geometry *geo);
extern const struct attribute_group *nvme_ns_id_attr_groups[];