Hi all, The purpose of this series is to help address the inefficient use of preallocation for larger files on smaller filesystems. When the filesystem is small, so is the 5% low free space threshold that enables preallocation throttling. When the low free space threshold is reduced to a couple GB or so, we can ram into ENOSPC prematurely due to larger, active preallocations. We resolve this condition with an eofblocks scan in the pre-existing ENOSPC retry write sequence. The scan resets outstanding preallocations such that throttling is guaranteed an opportunity to manage future preallocations gracefully into ENOSPC and thus ensures closer to 100% utilization before ENOSPC is reported to userspace. Patches 1-3 make some small enhancements to the eofblocks scanner that facilitate running a scan in the context of a write. Patch 4 adds the actual scan-on-ENOSPC policy. Patch 5 updates the preallocation throttling algorithm to take quota free space into account. Thoughts, reviews, flames appreciated. Brian Brian Foster (5): xfs: do eofb filtering before dirty check xfs: add flush flag to xfs_eofblocks xfs: add scan owner field to xfs_eofblocks xfs: run an eofblocks scan on ENOSPC/EDQUOT xfs: squash prealloc while over quota free space as well fs/xfs/xfs_dquot.h | 15 +++++++++ fs/xfs/xfs_file.c | 32 +++++++++++++++++-- fs/xfs/xfs_fs.h | 4 ++- fs/xfs/xfs_icache.c | 90 +++++++++++++++++++++++++++++++++++++++++++++++------ fs/xfs/xfs_icache.h | 3 ++ fs/xfs/xfs_iomap.c | 20 ++++++++---- 6 files changed, 145 insertions(+), 19 deletions(-) -- 1.8.3.1 _______________________________________________ xfs mailing list xfs@xxxxxxxxxxx http://oss.sgi.com/mailman/listinfo/xfs