summaryrefslogtreecommitdiff
path: root/block
diff options
context:
space:
mode:
authorChristoph Hellwig <hch@lst.de>2026-06-24 10:00:03 +0200
committerJens Axboe <axboe@kernel.dk>2026-06-24 06:53:25 -0600
commita1c8bdbbd72564cebb0d02948c1ed57b80b2e773 (patch)
tree453209471161394833c7df3c82d4bfa7a83019a0 /block
parente7c1627afda2484baf65449be15873c2550f917a (diff)
downloadlinux-a1c8bdbbd72564cebb0d02948c1ed57b80b2e773.tar.gz
linux-a1c8bdbbd72564cebb0d02948c1ed57b80b2e773.zip
block: handle REQ_OP_ZONE_APPEND in __bio_integrity_action
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>
Diffstat (limited to 'block')
-rw-r--r--block/bio-integrity.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/block/bio-integrity.c b/block/bio-integrity.c
index a53b38cf8a1a..b23e2434d80c 100644
--- a/block/bio-integrity.c
+++ b/block/bio-integrity.c
@@ -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?
*/