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 _______________________________________________ xfs mailing list xfs@xxxxxxxxxxx http://oss.sgi.com/mailman/listinfo/xfs