Re: [PATCH] mm: adjust max read count in generic_file_buffered_read()

From: Jan Kara
Date: Thu Jul 19 2018 - 04:58:16 EST


On Thu 19-07-18 16:17:26, Chengguang Xu wrote:
> When we try to truncate read count in generic_file_buffered_read(),
> should deliver (sb->s_maxbytes - offset) as maximum count not
> sb->s_maxbytes itself.
>
> Signed-off-by: Chengguang Xu <cgxu519@xxxxxxx>

Looks good to me. You can add:

Reviewed-by: Jan Kara <jack@xxxxxxx>

BTW, I can see you didn't include two (I'd say the most important ;)
addresses to CC: Al Viro as a VFS maintainer and linux-fsdevel mailing
list. Although this code resides in mm/ it is in fact a filesystem code.
Added now.

Honza

> ---
> mm/filemap.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/mm/filemap.c b/mm/filemap.c
> index 52517f28e6f4..5c2d481d21cf 100644
> --- a/mm/filemap.c
> +++ b/mm/filemap.c
> @@ -2064,7 +2064,7 @@ static ssize_t generic_file_buffered_read(struct kiocb *iocb,
>
> if (unlikely(*ppos >= inode->i_sb->s_maxbytes))
> return 0;
> - iov_iter_truncate(iter, inode->i_sb->s_maxbytes);
> + iov_iter_truncate(iter, inode->i_sb->s_maxbytes - *ppos);
>
> index = *ppos >> PAGE_SHIFT;
> prev_index = ra->prev_pos >> PAGE_SHIFT;
> --
> 2.17.1
>
--
Jan Kara <jack@xxxxxxxx>
SUSE Labs, CR