From: Christoph Hellwig Date: Mon, 3 Jun 2024 08:28:35 +0000 (+0200) Subject: block: don't require stable pages for non-PI metadata X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=23854ce86d6c48d3ab36f660b56cf69f03d3df9b;p=users%2Fhch%2Fblock.git block: don't require stable pages for non-PI metadata Non-PI metadata doesn't contain checksums and thus doesn't require stable pages. Signed-off-by: Christoph Hellwig --- diff --git a/block/blk-integrity.c b/block/blk-integrity.c index bb3cd1e0eeb5..a6188c80c921 100644 --- a/block/blk-integrity.c +++ b/block/blk-integrity.c @@ -377,7 +377,8 @@ void blk_integrity_register(struct gendisk *disk, struct blk_integrity *template bi->tag_size = template->tag_size; bi->pi_offset = template->pi_offset; - blk_queue_flag_set(QUEUE_FLAG_STABLE_WRITES, disk->queue); + if (bi->csum_type != BLK_INTEGRITY_CSUM_NONE) + blk_queue_flag_set(QUEUE_FLAG_STABLE_WRITES, disk->queue); #ifdef CONFIG_BLK_INLINE_ENCRYPTION if (disk->queue->crypto_profile) { @@ -402,7 +403,8 @@ void blk_integrity_unregister(struct gendisk *disk) if (!bi->tuple_size) return; - blk_queue_flag_clear(QUEUE_FLAG_STABLE_WRITES, disk->queue); + if (bi->csum_type != BLK_INTEGRITY_CSUM_NONE) + blk_queue_flag_clear(QUEUE_FLAG_STABLE_WRITES, disk->queue); memset(bi, 0, sizeof(*bi)); } EXPORT_SYMBOL(blk_integrity_unregister);