diff options
author | Brian Foster <bfoster@redhat.com> | 2017-06-20 14:36:19 -0700 |
---|---|---|
committer | Darrick J. Wong <darrick.wong@oracle.com> | 2017-06-27 18:23:21 -0700 |
commit | cf2cb7845d6e101cb17bd62f8aa08cd514fc8988 (patch) | |
tree | 941ef1a4ac60a2cf08bb498e410fc7697056108b /fs | |
parent | 3e88a0078ba8ef61816c85d33131827b4a307852 (diff) | |
download | op-kernel-dev-cf2cb7845d6e101cb17bd62f8aa08cd514fc8988.zip op-kernel-dev-cf2cb7845d6e101cb17bd62f8aa08cd514fc8988.tar.gz |
xfs: free cowblocks and retry on buffered write ENOSPC
XFS runs an eofblocks reclaim scan before returning an ENOSPC error to
userspace for buffered writes. This facilitates aggressive speculative
preallocation without causing user visible side effects such as
premature ENOSPC.
Run a cowblocks scan in the same situation to reclaim lingering COW fork
preallocation throughout the filesystem.
Signed-off-by: Brian Foster <bfoster@redhat.com>
Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Diffstat (limited to 'fs')
-rw-r--r-- | fs/xfs/xfs_file.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/fs/xfs/xfs_file.c b/fs/xfs/xfs_file.c index 36c1293..8f9a491 100644 --- a/fs/xfs/xfs_file.c +++ b/fs/xfs/xfs_file.c @@ -660,6 +660,7 @@ write_retry: xfs_iunlock(ip, iolock); eofb.eof_flags = XFS_EOF_FLAGS_SYNC; xfs_icache_free_eofblocks(ip->i_mount, &eofb); + xfs_icache_free_cowblocks(ip->i_mount, &eofb); goto write_retry; } |