aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/block
diff options
context:
space:
mode:
authorZheng Qixing <zhengqixing@huawei.com>2025-02-27 15:55:07 +0800
committerJens Axboe <axboe@kernel.dk>2025-03-06 08:04:52 -0700
commitd301f164c3fbff611bd71f57dfa553b9219f0f5e (patch)
tree9995759f85e3fbaea8a01986d4715f06e9b41315 /drivers/block
parentmd: improve return types of badblocks handling functions (diff)
downloadlinux-d301f164c3fbff611bd71f57dfa553b9219f0f5e.tar.gz
linux-d301f164c3fbff611bd71f57dfa553b9219f0f5e.zip
badblocks: use sector_t instead of int to avoid truncation of badblocks length
There is a truncation of badblocks length issue when set badblocks as follow: echo "2055 4294967299" > bad_blocks cat bad_blocks 2055 3 Change 'sectors' argument type from 'int' to 'sector_t'. This change avoids truncation of badblocks length for large sectors by replacing 'int' with 'sector_t' (u64), enabling proper handling of larger disk sizes and ensuring compatibility with 64-bit sector addressing. Fixes: 9e0e252a048b ("badblocks: Add core badblock management code") Signed-off-by: Zheng Qixing <zhengqixing@huawei.com> Reviewed-by: Yu Kuai <yukuai3@huawei.com> Acked-by: Coly Li <colyli@kernel.org> Link: https://lore.kernel.org/r/20250227075507.151331-13-zhengqixing@huaweicloud.com Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'drivers/block')
-rw-r--r--drivers/block/null_blk/main.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/drivers/block/null_blk/main.c b/drivers/block/null_blk/main.c
index 8f6025efc543..4a5cd288dc07 100644
--- a/drivers/block/null_blk/main.c
+++ b/drivers/block/null_blk/main.c
@@ -1339,8 +1339,7 @@ blk_status_t null_handle_badblocks(struct nullb_cmd *cmd, sector_t sector,
struct badblocks *bb = &cmd->nq->dev->badblocks;
struct nullb_device *dev = cmd->nq->dev;
unsigned int block_sectors = dev->blocksize >> SECTOR_SHIFT;
- sector_t first_bad;
- int bad_sectors;
+ sector_t first_bad, bad_sectors;
unsigned int partial_io_sectors = 0;
if (!badblocks_check(bb, sector, *nr_sectors, &first_bad, &bad_sectors))