We store pointer of task_work in pdu. And we should get ioucmd from pdu since we prepare to only pass ioucmd to task_work function. Signed-off-by: ZiyangZhang <ZiyangZhang@xxxxxxxxxxxxxxxxx> --- drivers/block/ublk_drv.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/block/ublk_drv.c b/drivers/block/ublk_drv.c index e08f636b0b9d..8add6e3ae15f 100644 --- a/drivers/block/ublk_drv.c +++ b/drivers/block/ublk_drv.c @@ -555,6 +555,12 @@ static inline struct ublk_uring_cmd_pdu *ublk_get_uring_cmd_pdu( return (struct ublk_uring_cmd_pdu *)&ioucmd->pdu; } +static inline struct io_uring_cmd *ublk_uring_cmd_from_pdu( + struct ublk_uring_cmd_pdu *pdu) +{ + return container_of((u8 *)pdu, struct io_uring_cmd, pdu[0]); +} + static inline bool ubq_daemon_is_dying(struct ublk_queue *ubq) { return ubq->ubq_daemon->flags & PF_EXITING; -- 2.27.0