Hi all,
Here is v3 of the EFI/EFD/logging fixup series with updates based on
Christoph's review (in the v1 thread). I debated folding patch 4 into
patch 3 given the additional refactoring, but opted to keep them
separate to keep patch 3 to functional changes. Feel free to fold them
if that is preferred.
I also appended patch 13 to add some missing xfs_bmap_cancel() calls,
which I had deferred looking into until the lower level
xfs_bmap_finish() fixes were more solidified.
Brian
v3:
- Various, minor style fixups.
- Updated the commit log description for patch 1.
- Migrated xfs_trans_log_efd_extent() to an xfs_trans_free_extent()
helper that encodes the new EFD logging rules (patch 4).
- Appended patch 13 to add a few missing xfs_bmap_cancel() calls.
v2: http://oss.sgi.com/pipermail/xfs/2015-August/042922.html
- Added new comment around EFI/EFD refcount rules.
- Appended patch 12 to clean up AIL item removal.
- Reworked log recovery EFI cancellation APIs.
- Invoke EFI cancellation within xfs_log_mount() on failure to prevent
memory leak.
v1: http://oss.sgi.com/pipermail/xfs/2015-August/042877.html
- Updated EFI/EFD tracking semantics based on rfc comments.
- Added more cleanups/fixes to series.
rfc: http://oss.sgi.com/pipermail/xfs/2015-July/042617.html
Brian Foster (13):
xfs: disentagle EFI release from the extent count
xfs: return committed status from xfs_trans_roll()
xfs: fix efi/efd error handling to avoid fs shutdown hangs
xfs: ensure EFD trans aborts on log recovery extent free failure
xfs: use EFI refcount consistently in log recovery
xfs: don't leave EFIs on AIL on mount failure
xfs: icreate log item recovery and cancellation tracepoints
xfs: fix broken icreate log item cancellation
xfs: checksum log record ext headers based on record size
xfs: clean up root inode properly on mount failure
xfs: fix btree cursor error cleanups
xfs: add helper to conditionally remove items from the AIL
xfs: add missing bmap cancel calls in error paths
fs/xfs/libxfs/xfs_bmap.c | 1 +
fs/xfs/libxfs/xfs_ialloc.c | 2 +-
fs/xfs/xfs_bmap_util.c | 87 ++++++++++++-----------
fs/xfs/xfs_buf_item.c | 7 +-
fs/xfs/xfs_dquot.c | 8 +--
fs/xfs/xfs_extfree_item.c | 108 ++++++++++++-----------------
fs/xfs/xfs_extfree_item.h | 26 ++++++-
fs/xfs/xfs_inode.c | 9 +--
fs/xfs/xfs_inode_item.c | 10 +--
fs/xfs/xfs_itable.c | 3 +-
fs/xfs/xfs_log.c | 37 ++++++++--
fs/xfs/xfs_log.h | 1 +
fs/xfs/xfs_log_priv.h | 2 +
fs/xfs/xfs_log_recover.c | 167 ++++++++++++++++++++++++++++++++++-----------
fs/xfs/xfs_mount.c | 28 ++++----
fs/xfs/xfs_rtalloc.c | 57 ++++++++--------
fs/xfs/xfs_trace.h | 34 +++++++++
fs/xfs/xfs_trans.c | 15 +++-
fs/xfs/xfs_trans.h | 9 ++-
fs/xfs/xfs_trans_extfree.c | 32 ++++++---
fs/xfs/xfs_trans_priv.h | 14 ++++
21 files changed, 423 insertions(+), 234 deletions(-)
--
2.1.0
|