summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXie Yongji <xieyongji@bytedance.com>2021-10-26 22:40:12 +0800
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2021-11-21 13:49:08 +0100
commite2d865b3109c5dae84347ad67069fa4cb1935a9c (patch)
treee90f7f0a3c40dd111b175fece38a80d7864f6918
parent5b9f31a3be76f141c2101735c0af08a08aec0bca (diff)
downloadlinux-stable-e2d865b3109c5dae84347ad67069fa4cb1935a9c.tar.gz
linux-stable-e2d865b3109c5dae84347ad67069fa4cb1935a9c.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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-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 e7979fe7e4fa..42ed8ccc40e7 100644
--- a/include/linux/blkdev.h
+++ b/include/linux/blkdev.h
@@ -240,6 +240,14 @@ struct request {
void *end_io_data;
};
+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;