summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorXie Yongji <xieyongji@bytedance.com>2021-10-26 22:40:12 +0800
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2022-04-20 09:06:28 +0200
commit35076e0847b72037c5a721bc1689ba81417335b7 (patch)
tree6554feb3e0b4c047aa19adb793c94fb2b87c2ddc /include
parent7b0e01a9b7f2aaeb6fa73b35864b1d7dc6e795c4 (diff)
downloadlinux-35076e0847b72037c5a721bc1689ba81417335b7.tar.gz
linux-35076e0847b72037c5a721bc1689ba81417335b7.tar.bz2
linux-35076e0847b72037c5a721bc1689ba81417335b7.zip
block: Add a helper to validate the block size
commit 570b1cac477643cbf01a45fa5d018430a1fddbce upstream. There are some duplicated codes to validate the block size in block drivers. This limitation actually comes from block layer, so this patch tries to add a new block layer helper for that. Signed-off-by: Xie Yongji <xieyongji@bytedance.com> Link: https://lore.kernel.org/r/20211026144015.188-2-xieyongji@bytedance.com Signed-off-by: Jens Axboe <axboe@kernel.dk> Signed-off-by: Lee Jones <lee.jones@linaro.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'include')
-rw-r--r--include/linux/blkdev.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h
index 848aab6c6982..805072406552 100644
--- a/include/linux/blkdev.h
+++ b/include/linux/blkdev.h
@@ -49,6 +49,14 @@ struct pr_ops;
typedef void (rq_end_io_fn)(struct request *, int);
+static inline int blk_validate_block_size(unsigned int bsize)
+{
+ if (bsize < 512 || bsize > PAGE_SIZE || !is_power_of_2(bsize))
+ return -EINVAL;
+
+ return 0;
+}
+
#define BLK_RL_SYNCFULL (1U << 0)
#define BLK_RL_ASYNCFULL (1U << 1)