summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/linux/blk-mq.h1
-rw-r--r--include/linux/io_uring.h10
2 files changed, 9 insertions, 2 deletions
diff --git a/include/linux/blk-mq.h b/include/linux/blk-mq.h
index e35a5d835b1f..2233ccf41c19 100644
--- a/include/linux/blk-mq.h
+++ b/include/linux/blk-mq.h
@@ -933,6 +933,7 @@ int blk_rq_map_kern(struct request_queue *, struct request *, void *,
int blk_rq_append_bio(struct request *rq, struct bio *bio);
void blk_execute_rq_nowait(struct request *rq, bool at_head,
rq_end_io_fn *end_io);
+bool blk_rq_is_poll(struct request *rq);
blk_status_t blk_execute_rq(struct request *rq, bool at_head);
struct req_iterator {
diff --git a/include/linux/io_uring.h b/include/linux/io_uring.h
index 07732bc850af..bbc9c4ea19c3 100644
--- a/include/linux/io_uring.h
+++ b/include/linux/io_uring.h
@@ -6,6 +6,7 @@
#include <linux/xarray.h>
enum {
+ URING_CMD_POLLED = (1 << 0),
URING_CMD_FIXEDBUFS = (1 << 1),
};
/*
@@ -17,8 +18,13 @@ struct io_uring_cmd {
__u16 op;
__u16 flags;
__u32 len;
- /* used if driver requires update in task context*/
- void (*driver_cb)(struct io_uring_cmd *cmd);
+ union {
+ void *bio; // Used for polling based completion
+
+ /* used if driver requires update in task context for IRQ based completion*/
+ void (*driver_cb)(struct io_uring_cmd *cmd);
+ };
+
__u64 pdu[5]; /* 40 bytes available inline for free use */
};