[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <39a21753-55b2-eb84-7d08-6cd9579c951c@linux.alibaba.com>
Date: Mon, 29 Aug 2022 12:59:23 +0800
From: Ziyang Zhang <ZiyangZhang@...ux.alibaba.com>
To: Ming Lei <ming.lei@...hat.com>
Cc: axboe@...nel.dk, xiaoguang.wang@...ux.alibaba.com,
linux-block@...r.kernel.org, linux-kernel@...r.kernel.org,
joseph.qi@...ux.alibaba.com
Subject: Re: [RFC PATCH 3/9] ublk_drv: add a helper to get ioucmd from pdu
On 2022/8/29 11:06, Ming Lei wrote:
> On Wed, Aug 24, 2022 at 01:47:38PM +0800, ZiyangZhang wrote:
>> 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@...ux.alibaba.com>
>> ---
>> 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]);
>> +}
>> +
>
> Patch isn't supposed to be written in this way, it is one helper, either
> change its caller in this patch, or merge this one wth the patch which
> applies it.
>
> Also looks this change belong to include/linux/io_uring.h if you think
> it is useful.
Maybe add a helper in include/linux/io_uring.h is good since ioucmd and pdu is
only used by NVMe and ublk_drv. NVMe does not need to transform pdu to ioucmd.
But in ublk_drv if we want to get ioucmd in task work, this transformation
is needed:
struct callback_head *work
--> struct ublk_uring_cmd_pdu *pdu
--> struct io_uring_cmd *cmd
Regards,
Zhang
Powered by blists - more mailing lists