Re: [PATCH] fs: Replace offsetof() with struct_size() in ioctl_file_dedupe_range()

From: Jan Kara
Date: Fri Aug 29 2025 - 05:33:21 EST


On Fri 29-08-25 17:15:10, Xichao Zhao wrote:
> When dealing with structures containing flexible arrays, struct_size()
> provides additional compile-time checks compared to offsetof(). This
> enhances code robustness and reduces the risk of potential errors.
>
> Signed-off-by: Xichao Zhao <zhao.xichao@xxxxxxxx>

Indeed. Also with struct_size() it is more obvious what was the intention.
Feel free to add:

Reviewed-by: Jan Kara <jack@xxxxxxx>

Honza

> ---
> fs/ioctl.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/fs/ioctl.c b/fs/ioctl.c
> index 0248cb8db2d3..83d07218b6cd 100644
> --- a/fs/ioctl.c
> +++ b/fs/ioctl.c
> @@ -426,7 +426,7 @@ static int ioctl_file_dedupe_range(struct file *file,
> goto out;
> }
>
> - size = offsetof(struct file_dedupe_range, info[count]);
> + size = struct_size(same, info, count);
> if (size > PAGE_SIZE) {
> ret = -ENOMEM;
> goto out;
> --
> 2.34.1
>
--
Jan Kara <jack@xxxxxxxx>
SUSE Labs, CR