[PATCH v2 1/2] block: ensure correct integrity capability propagation in stacked devices
Christoph Hellwig
hch at lst.de
Mon Mar 3 06:12:36 PST 2025
On Wed, Feb 26, 2025 at 04:50:34PM +0530, Anuj Gupta wrote:
> diff --git a/block/blk-settings.c b/block/blk-settings.c
> index c44dadc35e1e..8bd0d0f1479c 100644
> --- a/block/blk-settings.c
> +++ b/block/blk-settings.c
> @@ -861,7 +861,8 @@ bool queue_limits_stack_integrity(struct queue_limits *t,
>
> if (!ti->tuple_size) {
> /* inherit the settings from the first underlying device */
> - if (!(ti->flags & BLK_INTEGRITY_STACKED)) {
> + if (!(ti->flags & BLK_INTEGRITY_STACKED) &&
> + (bi->flags & BLK_INTEGRITY_DEVICE_CAPABLE)) {
> ti->flags = BLK_INTEGRITY_DEVICE_CAPABLE |
> (bi->flags & BLK_INTEGRITY_REF_TAG);
> ti->csum_type = bi->csum_type;
As mentioned last round this still does the wrong thing if the first
device(s) is/are not PI-capable but the next one(s) is/are. Please
look into the pseudocode I posted in reply to the previous iteration
on how to fix it.
More information about the Linux-nvme
mailing list