From: John Garry Date: Thu, 16 Jan 2025 17:02:55 +0000 (+0000) Subject: block: Don't trim an atomic write X-Git-Tag: v6.14-rc1~202^2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=554b22864cc79e28cd65e3a6e1d0d1dfa8581c68;p=thirdparty%2Flinux.git block: Don't trim an atomic write This is disallowed. This check will now be relevant since the device mapper personalities will start to support atomic writes, and they use this function. Signed-off-by: John Garry Reviewed-by: Mike Snitzer Link: https://lore.kernel.org/r/20250116170301.474130-3-john.g.garry@oracle.com Signed-off-by: Jens Axboe --- diff --git a/block/bio.c b/block/bio.c index 4e1a27d312c9a..f0c416e5931d9 100644 --- a/block/bio.c +++ b/block/bio.c @@ -1610,6 +1610,10 @@ EXPORT_SYMBOL(bio_split); */ void bio_trim(struct bio *bio, sector_t offset, sector_t size) { + /* We should never trim an atomic write */ + if (WARN_ON_ONCE(bio->bi_opf & REQ_ATOMIC && size)) + return; + if (WARN_ON_ONCE(offset > BIO_MAX_SECTORS || size > BIO_MAX_SECTORS || offset + size > bio_sectors(bio))) return;