xfs: pass flags and return gc errors from xfs_blockgc_free_quota
Change the signature of xfs_blockgc_free_quota in preparation for the next few patches. Callers can now pass EOF_FLAGS into the function to control scan parameters; and the function will now pass back any corruption errors seen while scanning, though for our retry loops we'll just try again unconditionally. Signed-off-by: Darrick J. Wong <djwong@kernel.org> Reviewed-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Brian Foster <bfoster@redhat.com>
This commit is contained in:
@@ -702,14 +702,14 @@ write_retry:
|
||||
* metadata space. This reduces the chances that the eofblocks scan
|
||||
* waits on dirty mappings. Since xfs_flush_inodes() is serialized, this
|
||||
* also behaves as a filter to prevent too many eofblocks scans from
|
||||
* running at the same time.
|
||||
* running at the same time. Use a synchronous scan to increase the
|
||||
* effectiveness of the scan.
|
||||
*/
|
||||
if (ret == -EDQUOT && !cleared_space) {
|
||||
xfs_iunlock(ip, iolock);
|
||||
cleared_space = xfs_blockgc_free_quota(ip);
|
||||
if (cleared_space)
|
||||
goto write_retry;
|
||||
iolock = 0;
|
||||
xfs_blockgc_free_quota(ip, XFS_EOF_FLAGS_SYNC);
|
||||
cleared_space = true;
|
||||
goto write_retry;
|
||||
} else if (ret == -ENOSPC && !cleared_space) {
|
||||
struct xfs_eofblocks eofb = {0};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user