Skip to content

Commit 20c64ec

Browse files
Christoph HellwigDarrick J. Wong
authored andcommitted
iomap: fix a regression for partial write errors
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: 219580e ("iomap: update ki_pos in iomap_file_buffered_write") Reported-by: kernel test robot <oliver.sang@intel.com> Reported-by: Cyril Hrubis <chrubis@suse.cz> Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Darrick J. Wong <djwong@kernel.org> Signed-off-by: Darrick J. Wong <djwong@kernel.org> Reviewed-by: Ritesh Harjani (IBM) <ritesh.harjani@gmail.com>
1 parent fdf0eaf commit 20c64ec

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

fs/iomap/buffered-io.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -872,7 +872,7 @@ iomap_file_buffered_write(struct kiocb *iocb, struct iov_iter *i,
872872
while ((ret = iomap_iter(&iter, ops)) > 0)
873873
iter.processed = iomap_write_iter(&iter, i);
874874

875-
if (unlikely(ret < 0))
875+
if (unlikely(iter.pos == iocb->ki_pos))
876876
return ret;
877877
ret = iter.pos - iocb->ki_pos;
878878
iocb->ki_pos += ret;

0 commit comments

Comments
 (0)