Skip to content
  • Linus Torvalds's avatar
    5631c5e0
    Merge tag 'xfs-5.9-merge-7' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux · 5631c5e0
    Linus Torvalds authored
    Pull xfs updates from Darrick Wong:
     "There are quite a few changes in this release, the most notable of
      which is that we've made inode flushing fully asynchronous, and we no
      longer block memory reclaim on this.
    
      Furthermore, we have fixed a long-standing bug in the quota code where
      soft limit warnings and inode limits were never tracked properly.
    
      Moving further down the line, the reflink control loops have been
      redesigned to behave more efficiently; and numerous small bugs have
      been fixed (see below). The xattr and quota code have been extensively
      refactored in preparation for more new features coming down the line.
    
      Finally, the behavior of DAX between ext4 and xfs has been stabilized,
      which gets us a step closer to removing the experimental tag from that
      feature.
    
      We have a few new contributors this time around. Welcome, all!
    
      I anticipate a second pull request next week for a few small bugfixes
      that have been trickling in, but this is it for big changes.
    
      Summary:
    
       - Fix some btree block pingponging problems when swapping extents
    
       - Redesign the reflink copy loop so that we only run one remapping
         operation per transaction. This helps us avoid running out of block
         reservation on highly deduped filesystems.
    
       - Take the MMAPLOCK around filemap_map_pages.
    
       - Make inode reclaim fully async so that we avoid stalling processes
         on flushing inodes to disk.
    
       - Reduce inode cluster buffer RMW cycles by attaching the buffer to
         dirty inodes so we won't let go of the cluster buffer when we know
         we're going to need it soon.
    
       - Add some more checks to the realtime bitmap file scrubber.
    
       - Don't trip false lockdep warnings in fs freeze.
    
       - Remove various redundant lines of code.
    
       - Remove unnecessary calls to xfs_perag_{get,put}.
    
       - Preserve I_VERSION state across remounts.
    
       - Fix an unmount hang due to AIL going to sleep with a non-empty
         delwri buffer list.
    
       - Fix an error in the inode allocation space reservation macro that
         caused regressions in generic/531.
    
       - Fix a potential livelock when dquot flush fails because the dquot
         buffer is locked.
    
       - Fix a miscalculation when reserving inode quota that could cause
         users to exceed a hardlimit.
    
       - Refactor struct xfs_dquot to use native types for incore fields
         instead of abusing the ondisk struct for this purpose. This will
         eventually enable proper y2038+ support, but for now it merely
         cleans up the quota function declarations.
    
       - Actually increment the quota softlimit warning counter so that soft
         failures turn into hard(er) failures when they exceed the softlimit
         warning counter limits set by the administrator.
    
       - Split incore dquot state flags into their own field and namespace,
         to avoid mixing them with quota type flags.
    
       - Create a new quota type flags namespace so that we can make it
         obvious when a quota function takes a quota type (user, group,
         project) as an argument.
    
       - Rename the ondisk dquot flags field to type, as that more
         accurately represents what we store in it.
    
       - Drop our bespoke memory allocation flags in favor of GFP_*.
    
       - Rearrange the xattr functions so that we no longer mix metadata
         updates and transaction management (e.g. rolling complex
         transactions) in the same functions. This work will prepare us for
         atomic xattr operations (itself a prerequisite for directory
         backrefs) in future release cycles.
    
       - Support FS_DAX_FL (aka FS_XFLAG_DAX) via GETFLAGS/SETFLAGS"
    
    * tag 'xfs-5.9-merge-7' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux: (117 commits)
      fs/xfs: Support that ioctl(SETXFLAGS/GETXFLAGS) can set/get inode DAX on XFS.
      xfs: Lift -ENOSPC handler from xfs_attr_leaf_addname
      xfs: Simplify xfs_attr_node_addname
      xfs: Simplify xfs_attr_leaf_addname
      xfs: Add helper function xfs_attr_node_removename_rmt
      xfs: Add helper function xfs_attr_node_removename_setup
      xfs: Add remote block helper functions
      xfs: Add helper function xfs_attr_leaf_mark_incomplete
      xfs: Add helpers xfs_attr_is_shortform and xfs_attr_set_shortform
      xfs: Remove xfs_trans_roll in xfs_attr_node_removename
      xfs: Remove unneeded xfs_trans_roll_inode calls
      xfs: Add helper function xfs_attr_node_shrink
      xfs: Pull up xfs_attr_rmtval_invalidate
      xfs: Refactor xfs_attr_rmtval_remove
      xfs: Pull up trans roll in xfs_attr3_leaf_clearflag
      xfs: Factor out xfs_attr_rmtval_invalidate
      xfs: Pull up trans roll from xfs_attr3_leaf_setflag
      xfs: Refactor xfs_attr_try_sf_addname
      xfs: Split apart xfs_attr_leaf_addname
      xfs: Pull up trans handling in xfs_attr3_leaf_flipflags
      ...
    5631c5e0
    Merge tag 'xfs-5.9-merge-7' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux
    Linus Torvalds authored
    Pull xfs updates from Darrick Wong:
     "There are quite a few changes in this release, the most notable of
      which is that we've made inode flushing fully asynchronous, and we no
      longer block memory reclaim on this.
    
      Furthermore, we have fixed a long-standing bug in the quota code where
      soft limit warnings and inode limits were never tracked properly.
    
      Moving further down the line, the reflink control loops have been
      redesigned to behave more efficiently; and numerous small bugs have
      been fixed (see below). The xattr and quota code have been extensively
      refactored in preparation for more new features coming down the line.
    
      Finally, the behavior of DAX between ext4 and xfs has been stabilized,
      which gets us a step closer to removing the experimental tag from that
      feature.
    
      We have a few new contributors this time around. Welcome, all!
    
      I anticipate a second pull request next week for a few small bugfixes
      that have been trickling in, but this is it for big changes.
    
      Summary:
    
       - Fix some btree block pingponging problems when swapping extents
    
       - Redesign the reflink copy loop so that we only run one remapping
         operation per transaction. This helps us avoid running out of block
         reservation on highly deduped filesystems.
    
       - Take the MMAPLOCK around filemap_map_pages.
    
       - Make inode reclaim fully async so that we avoid stalling processes
         on flushing inodes to disk.
    
       - Reduce inode cluster buffer RMW cycles by attaching the buffer to
         dirty inodes so we won't let go of the cluster buffer when we know
         we're going to need it soon.
    
       - Add some more checks to the realtime bitmap file scrubber.
    
       - Don't trip false lockdep warnings in fs freeze.
    
       - Remove various redundant lines of code.
    
       - Remove unnecessary calls to xfs_perag_{get,put}.
    
       - Preserve I_VERSION state across remounts.
    
       - Fix an unmount hang due to AIL going to sleep with a non-empty
         delwri buffer list.
    
       - Fix an error in the inode allocation space reservation macro that
         caused regressions in generic/531.
    
       - Fix a potential livelock when dquot flush fails because the dquot
         buffer is locked.
    
       - Fix a miscalculation when reserving inode quota that could cause
         users to exceed a hardlimit.
    
       - Refactor struct xfs_dquot to use native types for incore fields
         instead of abusing the ondisk struct for this purpose. This will
         eventually enable proper y2038+ support, but for now it merely
         cleans up the quota function declarations.
    
       - Actually increment the quota softlimit warning counter so that soft
         failures turn into hard(er) failures when they exceed the softlimit
         warning counter limits set by the administrator.
    
       - Split incore dquot state flags into their own field and namespace,
         to avoid mixing them with quota type flags.
    
       - Create a new quota type flags namespace so that we can make it
         obvious when a quota function takes a quota type (user, group,
         project) as an argument.
    
       - Rename the ondisk dquot flags field to type, as that more
         accurately represents what we store in it.
    
       - Drop our bespoke memory allocation flags in favor of GFP_*.
    
       - Rearrange the xattr functions so that we no longer mix metadata
         updates and transaction management (e.g. rolling complex
         transactions) in the same functions. This work will prepare us for
         atomic xattr operations (itself a prerequisite for directory
         backrefs) in future release cycles.
    
       - Support FS_DAX_FL (aka FS_XFLAG_DAX) via GETFLAGS/SETFLAGS"
    
    * tag 'xfs-5.9-merge-7' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux: (117 commits)
      fs/xfs: Support that ioctl(SETXFLAGS/GETXFLAGS) can set/get inode DAX on XFS.
      xfs: Lift -ENOSPC handler from xfs_attr_leaf_addname
      xfs: Simplify xfs_attr_node_addname
      xfs: Simplify xfs_attr_leaf_addname
      xfs: Add helper function xfs_attr_node_removename_rmt
      xfs: Add helper function xfs_attr_node_removename_setup
      xfs: Add remote block helper functions
      xfs: Add helper function xfs_attr_leaf_mark_incomplete
      xfs: Add helpers xfs_attr_is_shortform and xfs_attr_set_shortform
      xfs: Remove xfs_trans_roll in xfs_attr_node_removename
      xfs: Remove unneeded xfs_trans_roll_inode calls
      xfs: Add helper function xfs_attr_node_shrink
      xfs: Pull up xfs_attr_rmtval_invalidate
      xfs: Refactor xfs_attr_rmtval_remove
      xfs: Pull up trans roll in xfs_attr3_leaf_clearflag
      xfs: Factor out xfs_attr_rmtval_invalidate
      xfs: Pull up trans roll from xfs_attr3_leaf_setflag
      xfs: Refactor xfs_attr_try_sf_addname
      xfs: Split apart xfs_attr_leaf_addname
      xfs: Pull up trans handling in xfs_attr3_leaf_flipflags
      ...
Loading