Skip to content

Commit 1edd2c0

Browse files
committed
xfs: don't fail unwritten extent conversion on writeback due to edquot
During writeback, it's possible for the quota block reservation in xfs_iomap_write_unwritten to fail with EDQUOT because we hit the quota limit. This causes writeback errors for data that was already written to disk, when it's not even guaranteed that the bmbt will expand to exceed the quota limit. Irritatingly, this condition is reported to userspace as EIO by fsync, which is confusing. We wrote the data, so allow the reservation. That might put us slightly above the hard limit, but it's better than losing data after a write. Signed-off-by: Darrick J. Wong <[email protected]> Reviewed-by: Brian Foster <[email protected]> Reviewed-by: Christoph Hellwig <[email protected]>
1 parent 964176b commit 1edd2c0

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

fs/xfs/xfs_iomap.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -563,7 +563,7 @@ xfs_iomap_write_unwritten(
563563
xfs_trans_ijoin(tp, ip, 0);
564564

565565
error = xfs_trans_reserve_quota_nblks(tp, ip, resblks, 0,
566-
XFS_QMOPT_RES_REGBLKS);
566+
XFS_QMOPT_RES_REGBLKS | XFS_QMOPT_FORCE_RES);
567567
if (error)
568568
goto error_on_bmapi_transaction;
569569

0 commit comments

Comments
 (0)