On Fri, Feb 10, 2023 at 09:13:56AM -0500, Liu Xiaodong wrote: > Currently, uring_cmd with UBLK_IO_FETCH_REQ or > UBLK_IO_COMMIT_AND_FETCH_REQ is always checked whether > userspace server has provided IO buffer even flag > UBLK_F_NEED_GET_DATA is configured. > > This is a excessive check. If UBLK_F_NEED_GET_DATA is > configured, FETCH_RQ doesn't need to provide IO buffer; > COMMIT_AND_FETCH_REQ also doesn't need to do that if > the IO type is not READ. > > Check ub_cmd->addr together with ublk_need_get_data() > and IO type in ublk_ch_uring_cmd(). > > With this fix, userspace server doesn't need to preserve > buffers for every ublk_io when flag UBLK_F_NEED_GET_DATA > is configured, in order to save memory. > > Signed-off-by: Liu Xiaodong <xiaodong.liu@xxxxxxxxx> Good catch! Fixes: c86019ff75c1 ("ublk_drv: add support for UBLK_IO_NEED_GET_DATA") Reviewed-by: Ming Lei <ming.lei@xxxxxxxxxx> Thanks, Ming