• Linus Torvalds's avatar
    Merge tag 'xfs-5.8-merge-8' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux · 16d91548
    Linus Torvalds authored
    Pull xfs updates from Darrick Wong:
     "Most of the changes this cycle are refactoring of existing code in
      preparation for things landing in the future.
    
      We also fixed various problems and deficiencies in the quota
      implementation, and (I hope) the last of the stale read vectors by
      forcing write allocations to go through the unwritten state until the
      write completes.
    
      Summary:
    
       - Various cleanups to remove dead code, unnecessary conditionals,
         asserts, etc.
    
       - Fix a linker warning caused by xfs stuffing '-g' into CFLAGS
         redundantly.
    
       - Tighten up our dmesg logging to ensure that everything is prefixed
         with 'XFS' for easier grepping.
    
       - Kill a bunch of typedefs.
    
       - Refactor the deferred ops code to reduce indirect function calls.
    
       - Increase type-safety with the deferred ops code.
    
       - Make the DAX mount options a tri-state.
    
       - Fix some error handling problems in the inode flush code and clean
         up other inode flush warts.
    
       - Refactor log recovery so that each log item recovery functions now
         live with the other log item processing code.
    
       - Fix some SPDX forms.
    
       - Fix quota counter corruption if the fs crashes after running
         quotacheck but before any dquots get logged.
    
       - Don't fail metadata verification on zero-entry attr leaf blocks,
         since they're just part of the disk format now due to a historic
         lack of log atomicity.
    
       - Don't allow SWAPEXT between files with different [ugp]id when
         quotas are enabled.
    
       - Refactor inode fork reading and verification to run directly from
         the inode-from-disk function. This means that we now actually
         guarantee that _iget'ted inodes are totally verified and ready to
         go.
    
       - Move the incore inode fork format and extent counts to the ifork
         structure.
    
       - Scalability improvements by reducing cacheline pingponging in
         struct xfs_mount.
    
       - More scalability improvements by removing m_active_trans from the
         hot path.
    
       - Fix inode counter update sanity checking to run /only/ on debug
         kernels.
    
       - Fix longstanding inconsistency in what error code we return when a
         program hits project quota limits (ENOSPC).
    
       - Fix group quota returning the wrong error code when a program hits
         group quota limits.
    
       - Fix per-type quota limits and grace periods for group and project
         quotas so that they actually work.
    
       - Allow extension of individual grace periods.
    
       - Refactor the non-reclaim inode radix tree walking code to remove a
         bunch of stupid little functions and straighten out the
         inconsistent naming schemes.
    
       - Fix a bug in speculative preallocation where we measured a new
         allocation based on the last extent mapping in the file instead of
         looking farther for the last contiguous space allocation.
    
       - Force delalloc writes to unwritten extents. This closes a stale
         disk contents exposure vector if the system goes down before the
         write completes.
    
       - More lockdep whackamole"
    
    * tag 'xfs-5.8-merge-8' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux: (129 commits)
      xfs: more lockdep whackamole with kmem_alloc*
      xfs: force writes to delalloc regions to unwritten
      xfs: refactor xfs_iomap_prealloc_size
      xfs: measure all contiguous previous extents for prealloc size
      xfs: don't fail unwritten extent conversion on writeback due to edquot
      xfs: rearrange xfs_inode_walk_ag parameters
      xfs: straighten out all the naming around incore inode tree walks
      xfs: move xfs_inode_ag_iterator to be closer to the perag walking code
      xfs: use bool for done in xfs_inode_ag_walk
      xfs: fix inode ag walk predicate function return values
      xfs: refactor eofb matching into a single helper
      xfs: remove __xfs_icache_free_eofblocks
      xfs: remove flags argument from xfs_inode_ag_walk
      xfs: remove xfs_inode_ag_iterator_flags
      xfs: remove unused xfs_inode_ag_iterator function
      xfs: replace open-coded XFS_ICI_NO_TAG
      xfs: move eofblocks conversion function to xfs_ioctl.c
      xfs: allow individual quota grace period extension
      xfs: per-type quota timers and warn limits
      xfs: switch xfs_get_defquota to take explicit type
      ...
    16d91548
xfs_super.c 54.2 KB