diff options
Diffstat (limited to 'fs/iomap/buffered-io.c')
| -rw-r--r-- | fs/iomap/buffered-io.c | 4 | 
1 files changed, 2 insertions, 2 deletions
diff --git a/fs/iomap/buffered-io.c b/fs/iomap/buffered-io.c index adb92cdb24b0..aa8967cca1a3 100644 --- a/fs/iomap/buffered-io.c +++ b/fs/iomap/buffered-io.c @@ -872,10 +872,10 @@ 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; +	iocb->ki_pos = iter.pos;  	return ret;  }  EXPORT_SYMBOL_GPL(iomap_file_buffered_write);  |