6.1-stable review patch. If anyone has any objections, please let me know.
------------------
From: Jinyoung Choi j-young.choi@samsung.com
[ Upstream commit 51d74ec9b62f5813767a60226acaf943e26e7d7a ]
If a problem occurs in the process of creating an integrity payload, the status of bio is always BLK_STS_RESOURCE.
Reviewed-by: Christoph Hellwig hch@lst.de Signed-off-by: Jinyoung Choi j-young.choi@samsung.com Reviewed-by: "Martin K. Petersen" martin.petersen@oracle.com Link: https://lore.kernel.org/r/20230725051839epcms2p8e4d20ad6c51326ad032e8406f59d... Signed-off-by: Jens Axboe axboe@kernel.dk Stable-dep-of: 899ee2c3829c ("block: initialize integrity buffer to zero before writing it to media") Signed-off-by: Sasha Levin sashal@kernel.org --- block/bio-integrity.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-)
diff --git a/block/bio-integrity.c b/block/bio-integrity.c index 8f0af7ac8573b..045553a164e0c 100644 --- a/block/bio-integrity.c +++ b/block/bio-integrity.c @@ -199,7 +199,6 @@ bool bio_integrity_prep(struct bio *bio) unsigned long start, end; unsigned int len, nr_pages; unsigned int bytes, offset, i; - blk_status_t status;
if (!bi) return true; @@ -227,7 +226,6 @@ bool bio_integrity_prep(struct bio *bio) /* Allocate kernel buffer for protection data */ len = bio_integrity_bytes(bi, bio_sectors(bio)); buf = kmalloc(len, GFP_NOIO); - status = BLK_STS_RESOURCE; if (unlikely(buf == NULL)) { printk(KERN_ERR "could not allocate integrity buffer\n"); goto err_end_io; @@ -242,7 +240,6 @@ bool bio_integrity_prep(struct bio *bio) if (IS_ERR(bip)) { printk(KERN_ERR "could not allocate data integrity bioset\n"); kfree(buf); - status = BLK_STS_RESOURCE; goto err_end_io; }
@@ -270,7 +267,6 @@ bool bio_integrity_prep(struct bio *bio)
if (ret == 0) { printk(KERN_ERR "could not attach integrity payload\n"); - status = BLK_STS_RESOURCE; goto err_end_io; }
@@ -292,7 +288,7 @@ bool bio_integrity_prep(struct bio *bio) return true;
err_end_io: - bio->bi_status = status; + bio->bi_status = BLK_STS_RESOURCE; bio_endio(bio); return false;