]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
block: handle REQ_OP_ZONE_APPEND in __bio_integrity_action
authorChristoph Hellwig <hch@lst.de>
Wed, 24 Jun 2026 08:00:03 +0000 (10:00 +0200)
committerJens Axboe <axboe@kernel.dk>
Wed, 24 Jun 2026 12:53:25 +0000 (06:53 -0600)
Otherwise zone append commands will miss their integrity data.  While
this works "fine" for auto-PI, it break file system PI and non-PI
metadata.

With this XFS on ZNS namespace with non-PI metadata and 512 byte sectors
with PI work, while PI 4k sector formats with PI work only when Caleb's
"block: fix integrity offset/length conversions" is applied as well.

Note that unlike regular writes, zone append does need remapping as
partitions are not supported on zoned block devices.

Fixes: df3c485e0e60 ("block: switch on bio operation in bio_integrity_prep")
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com>
Link: https://patch.msgid.link/20260624080014.1998650-3-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk>
block/bio-integrity.c

index a53b38cf8a1a27ce72557b1ca79e9289e183a316..b23e2434d80c2c85df3142808c8d51240cdca21a 100644 (file)
@@ -38,6 +38,7 @@ unsigned int __bio_integrity_action(struct bio *bio)
                }
                return BI_ACT_BUFFER | BI_ACT_CHECK;
        case REQ_OP_WRITE:
+       case REQ_OP_ZONE_APPEND:
                /*
                 * Flush masquerading as write?
                 */