On 5/19/23 18:35, Christoph Hellwig wrote:
> All callers of iomap_file_buffered_write need to updated ki_pos, move it
> into common code.
> 
> Signed-off-by: Christoph Hellwig <h...@lst.de>

One nit below.

Acked-by: Damien Le Moal <dlem...@kernel.org>

> diff --git a/fs/iomap/buffered-io.c b/fs/iomap/buffered-io.c
> index 063133ec77f49e..550525a525c45c 100644
> --- a/fs/iomap/buffered-io.c
> +++ b/fs/iomap/buffered-io.c
> @@ -864,16 +864,19 @@ iomap_file_buffered_write(struct kiocb *iocb, struct 
> iov_iter *i,
>               .len            = iov_iter_count(i),
>               .flags          = IOMAP_WRITE,
>       };
> -     int ret;
> +     ssize_t ret;
>  
>       if (iocb->ki_flags & IOCB_NOWAIT)
>               iter.flags |= IOMAP_NOWAIT;
>  
>       while ((ret = iomap_iter(&iter, ops)) > 0)
>               iter.processed = iomap_write_iter(&iter, i);
> -     if (iter.pos == iocb->ki_pos)
> +
> +     if (unlikely(ret < 0))

Nit: This could be if (unlikely(ret <= 0)), no ?

>               return ret;
> -     return iter.pos - iocb->ki_pos;
> +     ret = iter.pos - iocb->ki_pos;
> +     iocb->ki_pos += ret;
> +     return ret;


-- 
Damien Le Moal
Western Digital Research

Reply via email to