summaryrefslogtreecommitdiffstats
path: root/block
diff options
context:
space:
mode:
authorChristoph Hellwig <hch@lst.de>2024-06-26 06:59:34 +0200
committerJens Axboe <axboe@kernel.dk>2024-06-28 18:29:41 +0200
commitc546d6f438338017480d105ab597292da67f6f6a (patch)
treec6fd16d64320dd44d3ac600e56a1eb24bd024fd0 /block
parentbcache: work around a __bitwise to bool conversion sparse warning (diff)
downloadlinux-c546d6f438338017480d105ab597292da67f6f6a.tar.xz
linux-c546d6f438338017480d105ab597292da67f6f6a.zip
block: only zero non-PI metadata tuples in bio_integrity_prep
The PI generation helpers already zero the app tag, so relax the zeroing to non-PI metadata. Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Kanchan Joshi <joshi.k@samsung.com> Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com> Link: https://lore.kernel.org/r/20240626045950.189758-2-hch@lst.de Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'block')
-rw-r--r--block/bio-integrity.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/block/bio-integrity.c b/block/bio-integrity.c
index 356ca0d3d62f..4da003b86a1b 100644
--- a/block/bio-integrity.c
+++ b/block/bio-integrity.c
@@ -456,11 +456,11 @@ bool bio_integrity_prep(struct bio *bio)
/*
* Zero the memory allocated to not leak uninitialized kernel
- * memory to disk. For PI this only affects the app tag, but
- * for non-integrity metadata it affects the entire metadata
- * buffer.
+ * memory to disk for non-integrity metadata where nothing else
+ * initializes the memory.
*/
- gfp |= __GFP_ZERO;
+ if (bi->csum_type == BLK_INTEGRITY_CSUM_NONE)
+ gfp |= __GFP_ZERO;
}
/* Allocate kernel buffer for protection data */