On Thu, Jan 08, 2026 at 02:19:31AM -0700, Caleb Sander Mateos wrote: > From: Stanley Zhang <[email protected]> > > Add a feature flag UBLK_F_INTEGRITY for a ublk server to request > integrity/metadata support when creating a ublk device. The ublk server > can also check for the feature flag on the created device or the result > of UBLK_U_CMD_GET_FEATURES to tell if the ublk driver supports it. > UBLK_F_INTEGRITY requires UBLK_F_USER_COPY, as user copy is the only > data copy mode initially supported for integrity data. > Add UBLK_PARAM_TYPE_INTEGRITY and struct ublk_param_integrity to struct > ublk_params to specify the integrity params of a ublk device. > UBLK_PARAM_TYPE_INTEGRITY requires UBLK_F_INTEGRITY and a nonzero > metadata_size. The LBMD_PI_CAP_* and LBMD_PI_CSUM_* values from the > linux/fs.h UAPI header are used for the flags and csum_type fields. > If the UBLK_PARAM_TYPE_INTEGRITY flag is set, validate the integrity > parameters and apply them to the blk_integrity limits. > The struct ublk_param_integrity validations are based on the checks in > blk_validate_integrity_limits(). Any invalid parameters should be > rejected before being applied to struct blk_integrity. > > Signed-off-by: Stanley Zhang <[email protected]> > [csander: drop redundant pi_tuple_size field, use block metadata UAPI > constants, add param validation] > Signed-off-by: Caleb Sander Mateos <[email protected]>
Reviewed-by: Ming Lei <[email protected]> Thanks, Ming
