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-15 14:14:37 +0200
commit602210ebc39144fcfee25f1758d07588051e702e (patch)
treeb5c756e2b3b1fde5406334722df974e7161c6d87 /include
parentcb64bd038beacb4331fe464a36c8b5481e8f51e2 (diff)
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 209ba8e7bd31..56fe682d9beb 100644
--- a/include/linux/blkdev.h
+++ b/include/linux/blkdev.h
@@ -56,6 +56,14 @@ struct blk_stat_callback;
*/
#define BLKCG_MAX_POLS 5
+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;
+}
+
typedef void (rq_end_io_fn)(struct request *, blk_status_t);
#define BLK_RL_SYNCFULL (1U << 0)