Hi Linus,

Here's the first round of fixes for XFS for 4.17.  The biggest new
features this time around are the addition of lazytime support, further
enhancement of the on-disk inode metadata verifiers, and a patch to
smooth over some of the AGFL padding problems that have intermittently
plagued users since 4.5.  I forsee sending a second pull request next
week with further bug fixes and speedups in the online scrub code and
elsewhere.

This series has been run through a full xfstests run over the weekend
and through a quick xfstests run against this morning's master, with no
major failures reported.  Let me know if there's any merge problems.

--D

The following changes since commit 0c8efd610b58cb23cefdfa12015799079aef94ae:

  Linux 4.16-rc5 (2018-03-11 17:25:09 -0700)

are available in the git repository at:

  git://git.kernel.org/pub/scm/fs/xfs/xfs-linux.git tags/xfs-4.17-merge-1

for you to fetch changes up to dc1baa715bbfbb1902da942d06497e79b40e7bc7:

  xfs: do not log/recover swapext extent owner changes for deleted inodes 
(2018-03-29 10:19:15 -0700)

----------------------------------------------------------------
Changes for this release:
- Various cleanups and code fixes
- Implement lazytime as a mount option
- Convert various on-disk metadata checks from asserts to -EFSCORRUPTED
- Fix accounting problems with the rmap per-ag reservations
- Refactorings and cleanups for xfs_log_force
- Various bugfixes for the reflink code
- Work around v5 AGFL padding problems to prevent fs shutdowns
- Establish inode fork verifiers to inspect on-disk metadata correctness
- Various online scrub fixes
- Fix v5 swapext blowing up on deleted inodes

----------------------------------------------------------------
Brian Foster (6):
      xfs: shutdown if block allocation overruns tx reservation
      xfs: account format bouncing into rmapbt swapext tx reservation
      xfs: rename agfl perag res type to rmapbt
      xfs: account only rmapbt-used blocks against rmapbt perag res
      xfs: detect agfl count corruption and reset agfl
      xfs: clean up xfs_mount allocation and dynamic initializers

Carlos Maiolino (1):
      Cleanup old XFS_BTREE_* traces

Christoph Hellwig (16):
      fs: don't clear I_DIRTY_TIME before calling mark_inode_dirty_sync
      xfs: implement the lazytime mount option
      xfs: remove misleading comment text on xfs_inode_item_unlock
      xfs: remove an outdated comment for xfs_inode_item_committing
      xfs: remove the unused log_flushed variable in xfs_extent_busy_flush
      xfs: merge _xfs_log_force and xfs_log_force
      xfs: merge _xfs_log_force_lsn and xfs_log_force_lsn
      xfs: refactor xfs_log_force
      xfs: fix the check for COW extents in xfs_swap_extents
      xfs: don't use XFS_BMAPI_ENTRIRE in xfs_get_blocks
      xfs: assert that xfs_reflink_allocate_cow is called with XFS_ILOCK_EXCL
      xfs: remove xfs_zero_range
      xfs: minor cleanup for xfs_get_blocks
      xfs: minor cleanup for xfs_reflink_end_cow
      xfs: refactor xfs_log_force_lsn
      xfs: unwind the try_again loop in xfs_log_force

Darrick J. Wong (15):
      xfs: don't iunlock the quota ip when quota block
      xfs: convert a few more directory asserts to corruption
      xfs: check for cow blocks before trying to clear them
      xfs: sanity-check the unused space before trying to use it
      xfs: refactor bmap record validation
      xfs: refactor inode verifier error logging
      xfs: refactor inode buffer verifier error logging
      xfs: bmap scrubber should do rmap xref with bmap for sparse files
      xfs: inode scrubber shouldn't bother with raw checks
      xfs: remove xfs_buf parameter from inode scrub methods
      xfs: record inode buf errors as a xref error in inobt scrubber
      xfs: move inode extent size hint validation to libxfs
      xfs: don't accept inode buffers with suspicious unlinked chains
      xfs: flag inode corruption if parent ptr doesn't get us a real inode
      xfs: xfs_scrub_iallocbt_xref_rmap_inodes should use xref_set_corrupt

Dave Chinner (6):
      xfs: fall back to vmalloc when allocation log vector buffers
      xfs: fix transaction allocation deadlock in IO path
      xfs: convert XFS_AGFL_SIZE to a helper function
      inode: don't memset the inode address space twice
      xfs: catch inode allocation state mismatch corruption
      xfs: remove dead inode version setting code

Eric Sandeen (2):
      xfs: remove unused m_dmevmask from xfs_mount struct
      xfs: do not log/recover swapext extent owner changes for deleted inodes

Matthew Wilcox (1):
      xfs: Rename xa_ elements to ail_

Nikolay Borisov (1):
      xfs: Remove dead code from inode recover function

Vratislav Bendel (1):
      xfs: Correctly invert xfs_buftarg LRU isolation logic

 fs/inode.c                         |  12 ++++--
 fs/sync.c                          |   6 +--
 fs/xfs/kmem.c                      |   6 +--
 fs/xfs/kmem.h                      |   8 +++-
 fs/xfs/libxfs/xfs_ag_resv.c        |  39 ++++++++++--------
 fs/xfs/libxfs/xfs_ag_resv.h        |  31 ++++++++++++++
 fs/xfs/libxfs/xfs_alloc.c          | 139 
++++++++++++++++++++++++++++++++++++++++++++++++++++++--------
 fs/xfs/libxfs/xfs_alloc.h          |   2 +
 fs/xfs/libxfs/xfs_alloc_btree.c    |   8 +---
 fs/xfs/libxfs/xfs_bmap.c           |  51 ++++++++++++++++++++---
 fs/xfs/libxfs/xfs_bmap.h           |   3 ++
 fs/xfs/libxfs/xfs_bmap_btree.c     |   4 +-
 fs/xfs/libxfs/xfs_bmap_btree.h     |  14 -------
 fs/xfs/libxfs/xfs_btree.c          | 125 
++++----------------------------------------------------
 fs/xfs/libxfs/xfs_btree.h          |  19 ---------
 fs/xfs/libxfs/xfs_dir2.h           |   2 +-
 fs/xfs/libxfs/xfs_dir2_block.c     |  59 ++++++++++++++++-----------
 fs/xfs/libxfs/xfs_dir2_data.c      |  78 +++++++++++++++++++++++++++--------
 fs/xfs/libxfs/xfs_dir2_leaf.c      |  13 ++++--
 fs/xfs/libxfs/xfs_dir2_node.c      |  16 +++++---
 fs/xfs/libxfs/xfs_format.h         |  13 +-----
 fs/xfs/libxfs/xfs_ialloc_btree.c   |   9 +---
 fs/xfs/libxfs/xfs_inode_buf.c      | 124 
+++++++++++++++++++++++++++++++++++++++++++++++++++----
 fs/xfs/libxfs/xfs_inode_buf.h      |   5 +++
 fs/xfs/libxfs/xfs_inode_fork.c     |  27 +++++++-----
 fs/xfs/libxfs/xfs_refcount_btree.c |   5 ---
 fs/xfs/libxfs/xfs_rmap_btree.c     |  12 +++---
 fs/xfs/libxfs/xfs_sb.c             |   1 -
 fs/xfs/scrub/agheader.c            |   6 +--
 fs/xfs/scrub/attr.c                |   2 +-
 fs/xfs/scrub/bmap.c                | 174 
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
 fs/xfs/scrub/common.c              |  24 ++++-------
 fs/xfs/scrub/common.h              |  13 +++---
 fs/xfs/scrub/dir.c                 |   2 +-
 fs/xfs/scrub/ialloc.c              |   5 ++-
 fs/xfs/scrub/inode.c               | 298 
+++++++++++++++++++++++++++++++-----------------------------------------------------------------------------------------------------
 fs/xfs/scrub/parent.c              |  12 +++++-
 fs/xfs/scrub/quota.c               |   2 +-
 fs/xfs/scrub/rtbitmap.c            |   3 +-
 fs/xfs/scrub/trace.h               |  31 +++-----------
 fs/xfs/xfs_aops.c                  |  20 ++++-----
 fs/xfs/xfs_bmap_util.c             |  44 ++++++++++++--------
 fs/xfs/xfs_buf.c                   |   2 +-
 fs/xfs/xfs_buf_item.c              |  10 ++---
 fs/xfs/xfs_dquot.c                 |   6 +--
 fs/xfs/xfs_dquot_item.c            |  11 ++---
 fs/xfs/xfs_error.c                 |  29 ++++++++++---
 fs/xfs/xfs_error.h                 |   3 ++
 fs/xfs/xfs_export.c                |   2 +-
 fs/xfs/xfs_extent_busy.c           |   5 +--
 fs/xfs/xfs_file.c                  |  52 ++++-------------------
 fs/xfs/xfs_fsops.c                 |   2 +-
 fs/xfs/xfs_icache.c                |  23 ++++++++++-
 fs/xfs/xfs_inode.c                 |  11 ++++-
 fs/xfs/xfs_inode.h                 |   4 --
 fs/xfs/xfs_inode_item.c            |  29 +++++--------
 fs/xfs/xfs_iops.c                  |  17 +++++++-
 fs/xfs/xfs_log.c                   | 376 
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------------------------------------------------------------------------------------------
 fs/xfs/xfs_log.h                   |  15 ++-----
 fs/xfs/xfs_log_cil.c               |   2 +-
 fs/xfs/xfs_log_recover.c           | 100 
+++++++++++++++++++--------------------------
 fs/xfs/xfs_mount.c                 |   4 --
 fs/xfs/xfs_mount.h                 |  13 +++---
 fs/xfs/xfs_reflink.c               |  25 ++++++------
 fs/xfs/xfs_super.c                 |  71 +++++++++++++++++++++++---------
 fs/xfs/xfs_trace.h                 |   9 +++-
 fs/xfs/xfs_trans.c                 |  32 ++++++++-------
 fs/xfs/xfs_trans_ail.c             | 152 
++++++++++++++++++++++++++++++++++----------------------------------
 fs/xfs/xfs_trans_buf.c             |   4 +-
 fs/xfs/xfs_trans_inode.c           |  14 +++++++
 fs/xfs/xfs_trans_priv.h            |  42 +++++++++----------
 71 files changed, 1365 insertions(+), 1167 deletions(-)

Reply via email to