diff options
author | Xie Yongji <xieyongji@bytedance.com> | 2021-10-26 22:40:12 +0800 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2021-10-27 14:15:51 -0600 |
commit | 570b1cac477643cbf01a45fa5d018430a1fddbce (patch) | |
tree | 628aa72ad9f68afcebe377f59de2cc847e624fc2 /include | |
parent | c7b84d4226adaa601e9f73574ef123d1500cf712 (diff) | |
download | lwn-570b1cac477643cbf01a45fa5d018430a1fddbce.tar.gz lwn-570b1cac477643cbf01a45fa5d018430a1fddbce.zip |
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>
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/blkdev.h | 8 |
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; |