On Fri, Jul 14, 2023 at 10:51:23AM +0200, Christoph Hellwig wrote: > When write* wrote some data it should return the amount of written data > and not the error code that caused it to stop. Fix a recent regression > in iomap_file_buffered_write that caused it to return the errno instead. > > Fixes: 219580eea1ee ("iomap: update ki_pos in iomap_file_buffered_write") > Reported-by: kernel test robot <oliver.sang@xxxxxxxxx> > Reported-by: Cyril Hrubis <chrubis@xxxxxxx> > Signed-off-by: Christoph Hellwig <hch@xxxxxx> Simple enough reversion, sorry for the breakage... Reviewed-by: Darrick J. Wong <djwong@xxxxxxxxxx> --D > --- > fs/iomap/buffered-io.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/fs/iomap/buffered-io.c b/fs/iomap/buffered-io.c > index adb92cdb24b009..7cc9f7274883a5 100644 > --- a/fs/iomap/buffered-io.c > +++ b/fs/iomap/buffered-io.c > @@ -872,7 +872,7 @@ iomap_file_buffered_write(struct kiocb *iocb, struct iov_iter *i, > while ((ret = iomap_iter(&iter, ops)) > 0) > iter.processed = iomap_write_iter(&iter, i); > > - if (unlikely(ret < 0)) > + if (unlikely(iter.pos == iocb->ki_pos)) > return ret; > ret = iter.pos - iocb->ki_pos; > iocb->ki_pos += ret; > -- > 2.39.2 >