summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXie Yongji <xieyongji@bytedance.com>2021-10-26 17:40:12 +0300
committerJens Axboe <axboe@kernel.dk>2021-10-27 23:15:51 +0300
commit570b1cac477643cbf01a45fa5d018430a1fddbce (patch)
tree628aa72ad9f68afcebe377f59de2cc847e624fc2
parentc7b84d4226adaa601e9f73574ef123d1500cf712 (diff)
downloadlinux-570b1cac477643cbf01a45fa5d018430a1fddbce.tar.xz
block: Add a helper to validate the block size
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>
-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 6d95a4b36cfa..d2d627e2c782 100644
--- a/include/linux/blkdev.h
+++ b/include/linux/blkdev.h
@@ -44,6 +44,14 @@ struct blk_crypto_profile;
*/
#define BLKCG_MAX_POLS 6
+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;
+}
+
static inline bool blk_op_is_passthrough(unsigned int op)
{
op &= REQ_OP_MASK;