From: Yu Kuai Date: Tue, 6 May 2025 06:17:55 +0000 (+0800) Subject: brd: fix aligned_sector from brd_do_discard() X-Git-Tag: v6.16-rc1~216^2~96 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d4099f8893b057ad7e8d61df76bdeaf807ebd679;p=thirdparty%2Fkernel%2Flinux.git brd: fix aligned_sector from brd_do_discard() The calculation is just wrong, fix it by round_up(). Fixes: 9ead7efc6f3f ("brd: implement discard support") Signed-off-by: Yu Kuai Reviewed-by: Christoph Hellwig Link: https://lore.kernel.org/r/20250506061756.2970934-3-yukuai1@huaweicloud.com Signed-off-by: Jens Axboe --- diff --git a/drivers/block/brd.c b/drivers/block/brd.c index fc793d48a9c63..2753fb21410b3 100644 --- a/drivers/block/brd.c +++ b/drivers/block/brd.c @@ -166,7 +166,7 @@ static void brd_free_one_page(struct rcu_head *head) static void brd_do_discard(struct brd_device *brd, sector_t sector, u32 size) { - sector_t aligned_sector = (sector + PAGE_SECTORS) & ~PAGE_SECTORS; + sector_t aligned_sector = round_up(sector, PAGE_SECTORS); struct page *page; size -= (aligned_sector - sector) * SECTOR_SIZE;