Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6c006a9d authored by Chandan Rajendra's avatar Chandan Rajendra Committed by Jens Axboe
Browse files

clean_bdev_aliases: Prevent cleaning blocks that are not in block range



The first block to be cleaned may start at a non-zero page offset. In
such a scenario clean_bdev_aliases() will end up cleaning blocks that
do not fall in the range of blocks to be cleaned. This commit fixes the
issue by skipping blocks that do not fall in valid block range.

Signed-off-by: default avatarChandan Rajendra <chandan@linux.vnet.ibm.com>
Reviewed-by: default avatarJan Kara <jack@suse.cz>
Reviewed-by: default avatarEryu Guan <eguan@redhat.com>
Signed-off-by: default avatarJens Axboe <axboe@fb.com>
parent 8e5d31eb
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -1660,7 +1660,7 @@ void clean_bdev_aliases(struct block_device *bdev, sector_t block, sector_t len)
			head = page_buffers(page);
			bh = head;
			do {
				if (!buffer_mapped(bh))
				if (!buffer_mapped(bh) || (bh->b_blocknr < block))
					goto next;
				if (bh->b_blocknr >= block + len)
					break;