projects
/
platform
/
kernel
/
linux-starfive.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
1022519
)
ublk: honor IO_URING_F_NONBLOCK for handling control command
author
Ming Lei
<ming.lei@redhat.com>
Wed, 4 Jan 2023 13:32:35 +0000
(21:32 +0800)
committer
Greg Kroah-Hartman
<gregkh@linuxfoundation.org>
Thu, 12 Jan 2023 11:02:32 +0000
(12:02 +0100)
[ Upstream commit
fa8e442e832a3647cdd90f3e606c473a51bc1b26
]
Most of control command handlers may sleep, so return -EAGAIN in case
of IO_URING_F_NONBLOCK to defer the handling into io wq context.
Fixes:
71f28f3136af
("ublk_drv: add io_uring based userspace block driver")
Reported-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Ming Lei <ming.lei@redhat.com>
Link:
https://lore.kernel.org/r/20230104133235.836536-1-ming.lei@redhat.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/block/ublk_drv.c
patch
|
blob
|
history
diff --git
a/drivers/block/ublk_drv.c
b/drivers/block/ublk_drv.c
index
e9de9d8
..
17b677b
100644
(file)
--- a/
drivers/block/ublk_drv.c
+++ b/
drivers/block/ublk_drv.c
@@
-1992,6
+1992,9
@@
static int ublk_ctrl_uring_cmd(struct io_uring_cmd *cmd,
struct ublksrv_ctrl_cmd *header = (struct ublksrv_ctrl_cmd *)cmd->cmd;
int ret = -EINVAL;
+ if (issue_flags & IO_URING_F_NONBLOCK)
+ return -EAGAIN;
+
ublk_ctrl_cmd_dump(cmd);
if (!(issue_flags & IO_URING_F_SQE128))