[PATCH v2 00/12] xfs: miscellaneous logging, recovery, umount fixes

Brian Foster
2015-08-07T21:15:36Z

Hi all,

Here's v2 of the EFI/EFD and miscellaneous log fixes series. Patch 12 is
added based on a suggestion from Dave in the v1 comments. Otherwise,
most of the changes are in patch 6 where the APIs for log recovery
cancellation are shuffled around a bit. Note that I retained the
xlog_recovery_finish() helper rather than replace it because there is
another caller in this version that addresses a memory leak (plus it
seems consistent with the xlog_recovery_finish() interface).

Brian

v2:
- 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 (12):
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

fs/xfs/libxfs/xfs_ialloc.c | 2 +-
fs/xfs/xfs_bmap_util.c | 84 ++++++++++++----------
fs/xfs/xfs_buf_item.c | 7 +-
fs/xfs/xfs_dquot.c | 8 +--
fs/xfs/xfs_extfree_item.c | 109 ++++++++++++-----------------
fs/xfs/xfs_extfree_item.h | 26 ++++++-
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 | 169 ++++++++++++++++++++++++++++++++++-----------
fs/xfs/xfs_mount.c | 28 ++++----
fs/xfs/xfs_trace.h | 34 +++++++++
fs/xfs/xfs_trans.c | 15 +++-
fs/xfs/xfs_trans.h | 2 +-
fs/xfs/xfs_trans_priv.h | 14 ++++
17 files changed, 367 insertions(+), 184 deletions(-)