mirror of
https://gitee.com/bianbu-linux/linux-6.6
synced 2025-04-24 14:07:52 -04:00
Bug fixes for 6.5-rc2:
* Fix a bug wherein a failed write could clobber short write status. Signed-off-by: Darrick J. Wong <djwong@kernel.org> -----BEGIN PGP SIGNATURE----- iHUEABYKAB0WIQQ2qTKExjcn+O1o2YRKO3ySh0YRpgUCZLVjtwAKCRBKO3ySh0YR pjuyAQCzUYzZEzAMz7xNBrpvNc7bSgBo6ktEidiBYH0UVcRh8AEA8oURNOBXFl8l QyqdkM43eIBx4ovwLYZwGk0snNW2KAk= =MDl3 -----END PGP SIGNATURE----- Merge tag 'iomap-6.5-fixes-1' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux Pull iomap fix from Darrick Wong: "Fix partial write regression. It turns out that fstests doesn't have any test coverage for short writes, but LTP does. Fortunately, this was caught right after -rc1 was tagged. Summary: - Fix a bug wherein a failed write could clobber short write status" * tag 'iomap-6.5-fixes-1' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux: iomap: micro optimize the ki_pos assignment in iomap_file_buffered_write iomap: fix a regression for partial write errors
This commit is contained in:
commit
e599e16c16
1 changed files with 2 additions and 2 deletions
|
@ -872,10 +872,10 @@ iomap_file_buffered_write(struct kiocb *iocb, struct iov_iter *i,
|
||||||
while ((ret = iomap_iter(&iter, ops)) > 0)
|
while ((ret = iomap_iter(&iter, ops)) > 0)
|
||||||
iter.processed = iomap_write_iter(&iter, i);
|
iter.processed = iomap_write_iter(&iter, i);
|
||||||
|
|
||||||
if (unlikely(ret < 0))
|
if (unlikely(iter.pos == iocb->ki_pos))
|
||||||
return ret;
|
return ret;
|
||||||
ret = iter.pos - iocb->ki_pos;
|
ret = iter.pos - iocb->ki_pos;
|
||||||
iocb->ki_pos += ret;
|
iocb->ki_pos = iter.pos;
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(iomap_file_buffered_write);
|
EXPORT_SYMBOL_GPL(iomap_file_buffered_write);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue