Re: [PATCH] fs: direct-io: fix missing sdio->boundary

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon 22-03-21 12:22:53, Jack Qiu wrote:
> Function dio_send_cur_page may clear sdio->boundary,
> so save it to avoid boundary missing.
> 
> Fixes: b1058b981272 ("direct-io: submit bio after boundary buffer is
> added to it")
> Cc: <stable@xxxxxxxxxxxxxxx>
> Signed-off-by: Jack Qiu <jack.qiu@xxxxxxxxxx>

Indeed. The patch looks good to me. Feel free to add:

Reviewed-by: Jan Kara <jack@xxxxxxx>

								Honza

> ---
>  fs/direct-io.c | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/fs/direct-io.c b/fs/direct-io.c
> index 9fe721dc04e0..c9023f0bb20a 100644
> --- a/fs/direct-io.c
> +++ b/fs/direct-io.c
> @@ -812,6 +812,7 @@ submit_page_section(struct dio *dio, struct dio_submit *sdio, struct page *page,
>  		    struct buffer_head *map_bh)
>  {
>  	int ret = 0;
> +	int boundary = sdio->boundary;	/* dio_send_cur_page may clear it */
> 
>  	if (dio->op == REQ_OP_WRITE) {
>  		/*
> @@ -850,10 +851,10 @@ submit_page_section(struct dio *dio, struct dio_submit *sdio, struct page *page,
>  	sdio->cur_page_fs_offset = sdio->block_in_file << sdio->blkbits;
>  out:
>  	/*
> -	 * If sdio->boundary then we want to schedule the IO now to
> +	 * If boundary then we want to schedule the IO now to
>  	 * avoid metadata seeks.
>  	 */
> -	if (sdio->boundary) {
> +	if (boundary) {
>  		ret = dio_send_cur_page(dio, sdio, map_bh);
>  		if (sdio->bio)
>  			dio_bio_submit(dio, sdio);
> --
> 2.17.1
> 
-- 
Jan Kara <jack@xxxxxxxx>
SUSE Labs, CR



[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [Samba]     [Device Mapper]     [CEPH Development]

  Powered by Linux