diff options
author | Pankaj Raghav <p.raghav@samsung.com> | 2025-06-26 13:32:23 +0200 |
---|---|---|
committer | Christian Brauner <brauner@kernel.org> | 2025-07-08 16:48:12 +0200 |
commit | 77eb64439ad52d8afb57bb4dae24a2743c68f50d (patch) | |
tree | f77ed3234300651a10cb7afd2c8b1b422ffa9a2a | |
parent | 04a2c4b4511d186b0fce685da21085a5d4acd370 (diff) |
fs/buffer: remove the min and max limit checks in __getblk_slow()
All filesystems will already check the max and min value of their block
size during their initialization. __getblk_slow() is a very low-level
function to have these checks. Remove them and only check for logical
block size alignment.
As this check with logical block size alignment might never trigger, add
WARN_ON_ONCE() to the check. As WARN_ON_ONCE() will already print the
stack, remove the call to dump_stack().
Suggested-by: Matthew Wilcox <willy@infradead.org>
Reviewed-by: Jan Kara <jack@suse.cz>
Signed-off-by: Pankaj Raghav <p.raghav@samsung.com>
Link: https://lore.kernel.org/20250626113223.181399-1-p.raghav@samsung.com
Reviewed-by: Baokun Li <libaokun1@huawei.com>
Signed-off-by: Christian Brauner <brauner@kernel.org>
-rw-r--r-- | fs/buffer.c | 11 |
1 files changed, 3 insertions, 8 deletions
diff --git a/fs/buffer.c b/fs/buffer.c index d61073143127..565fe88773c2 100644 --- a/fs/buffer.c +++ b/fs/buffer.c @@ -1122,14 +1122,9 @@ __getblk_slow(struct block_device *bdev, sector_t block, { bool blocking = gfpflags_allow_blocking(gfp); - if (unlikely(size & (bdev_logical_block_size(bdev) - 1) || - (size < 512 || size > PAGE_SIZE))) { - printk(KERN_ERR "getblk(): invalid block size %d requested\n", - size); - printk(KERN_ERR "logical block size: %d\n", - bdev_logical_block_size(bdev)); - - dump_stack(); + if (WARN_ON_ONCE(!IS_ALIGNED(size, bdev_logical_block_size(bdev)))) { + printk(KERN_ERR "getblk(): block size %d not aligned to logical block size %d\n", + size, bdev_logical_block_size(bdev)); return NULL; } |