Hi all, Here's v3 of the eofblocks scan on ENOSPC series. The primary change is the insertion of patch 2, which implements a union inode filter for eofblocks scans. This facilitates the EDQUOT handling in patch 3 to cover multiple quotas with a single scan. Version 2 and associated feedback is available here: http://oss.sgi.com/archives/xfs/2014-05/msg00527.html There was also some discussion about dropping the iolock in favor of introducing the scan owner field, but it's not clear if that is totally safe. FWIW, the scan owner field is kernel only, so can be removed and replaced with smarter locking any time down the road. Thoughts, reviews, flames appreciated. Brian v3: - Removed NULLFSINO check in eofblocks scan owner logic, added ASSERT. - Added union-based eofblocks scan filter patch and use in quota ENOSPC scan. v2: - Drop flush mechanism during eofblocks scan (along with prereq patch). - Simplify scan logic on ENOSPC. Separate EDQUOT from ENOSPC and tie ENOSPC scan to inode flush. - Eliminate unnecessary project quota handling from xfs_inode_free_quota_eofblocks() (ENOSPC is a separate path). Brian Foster (4): xfs: add scan owner field to xfs_eofblocks xfs: support a union-based filter for eofblocks scans 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 | 23 ++++++++++--- fs/xfs/xfs_fs.h | 3 ++ fs/xfs/xfs_icache.c | 96 +++++++++++++++++++++++++++++++++++++++++++++++++++-- fs/xfs/xfs_icache.h | 3 ++ fs/xfs/xfs_iomap.c | 20 +++++++---- 6 files changed, 148 insertions(+), 12 deletions(-) -- 1.8.3.1 _______________________________________________ xfs mailing list xfs@xxxxxxxxxxx http://oss.sgi.com/mailman/listinfo/xfs