ublk: add helper to check if device supports user copy
authorAndreas Hindborg <a.hindborg@samsung.com>
Fri, 4 Aug 2023 11:46:08 +0000 (13:46 +0200)
committerJens Axboe <axboe@kernel.dk>
Tue, 8 Aug 2023 21:45:53 +0000 (15:45 -0600)
This will be used by ublk zoned storage support.

Signed-off-by: Andreas Hindborg <a.hindborg@samsung.com>
Reviewed-by: Ming Lei <ming.lei@redhat.com>
Reviewed-by: Damien Le Moal <dlemoal@kernel.org>
Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Link: https://lore.kernel.org/r/20230804114610.179530-2-nmi@metaspace.dk
Signed-off-by: Jens Axboe <axboe@kernel.dk>
drivers/block/ublk_drv.c

index 1c82375..8d27190 100644 (file)
@@ -185,6 +185,11 @@ struct ublk_params_header {
        __u32   types;
 };
 
+static inline bool ublk_dev_is_user_copy(const struct ublk_device *ub)
+{
+       return ub->dev_info.flags & UBLK_F_USER_COPY;
+}
+
 static inline void __ublk_complete_rq(struct request *req);
 static void ublk_complete_rq(struct kref *ref);
 
@@ -2037,7 +2042,7 @@ static int ublk_ctrl_add_dev(struct io_uring_cmd *cmd)
                UBLK_F_URING_CMD_COMP_IN_TASK;
 
        /* GET_DATA isn't needed any more with USER_COPY */
-       if (ub->dev_info.flags & UBLK_F_USER_COPY)
+       if (ublk_dev_is_user_copy(ub))
                ub->dev_info.flags &= ~UBLK_F_NEED_GET_DATA;
 
        /* We are not ready to support zero copy */