[Top] [All Lists]

[PATCH v3 0/4] xfs: run eofblocks scan on ENOSPC

To: xfs@xxxxxxxxxxx
Subject: [PATCH v3 0/4] xfs: run eofblocks scan on ENOSPC
From: Brian Foster <bfoster@xxxxxxxxxx>
Date: Tue, 3 Jun 2014 10:49:34 -0400
Delivered-to: xfs@xxxxxxxxxxx
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:


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.


- Removed NULLFSINO check in eofblocks scan owner logic, added ASSERT.
- Added union-based eofblocks scan filter patch and use in quota ENOSPC
- 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(-)


<Prev in Thread] Current Thread [Next in Thread>