• Linus Torvalds's avatar
    Merge tag 'xfs-4.19-merge-6' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux · 781fca5b
    Linus Torvalds authored
    Pull xfs updates from Darrick Wong:
     "This is the second part of the XFS changes for 4.19.
    
      The biggest changes are the removal of buffer heads frm XFS, a massive
      reworking of the deferred transaction operations handling code, the
      removal of the long defunct barrier/nobarrier mount options, and the
      addition of a few more online repair functions.
    
      Summary:
    
       - Use extent maps to track pagecache page status instead of
         bufferhead state.
    
       - Refactor pagecache read and write paths to use the new iomap
         library functions, which enable us to drop the old bufferhead code
         for pagesize == blocksize filesystems.
    
       - Set up parallel per-block-per-page metadata to track subpage
         information that was tracked by buffer heads, which enables us to
         drop the old bufferhead code for pagesize > blocksize filesystems.
    
       - Tie a deferred ops control structure to a transaction so that we
         can take advantage of an upper-level dfops without having to plumb
         pointer passing through the code.
    
       - Refactor the deferred ops code to track deferred ops as part of the
         transaction structure (instead of as a separate data structure) so
         that we can simplify the scoping rules around defer_ops.
    
       - Refactor twisty delwri buffer submission code to avoid deadlocks.
    
       - Shorten and fix indenting problems in the scrub code.
    
       - Detect obviously bad summary counts at mount and fix them.
    
       - Directly associate deferred ops control structure with a
         transaction so that callers no longer have to manage it themselves.
    
       - Remove a couple of IRIX-era inode macros.
    
       - Remove the long-deprecated 'barrier' and 'nobarrier' mount options.
    
       - Clean up the inode fork structure a bit.
    
       - Check for bad fs summary counter values in the superblock.
    
       - Reduce COW fork lookups during writeback.
    
       - Refactor the deferred ops control structures into the transaction
         structure, thereby eliminating the need for transaction users to
         handle the deferred ops as a separate data structure.
    
       - Add the ability to repair AG headers online.
    
       - Fix a crash due to insufficient return value checking.
    
       - Various fixes and cleanups"
    
    * tag 'xfs-4.19-merge-6' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux: (155 commits)
      xfs: fix a null pointer dereference in xfs_bmap_extents_to_btree
      xfs: remove b_last_holder & associated macros
      iomap: Switch to offset_in_page for clarity
      xfs: Close race between direct IO and xfs_break_layouts()
      xfs: repair the AGI
      xfs: repair the AGFL
      xfs: repair the AGF
      xfs: remove dead error handling code in xfs_dquot_disk_alloc()
      xfs: use WRITE_ONCE to update if_seq
      xfs: fix a comment in xfs_log_reserve
      xfs: only validate summary counts on primary superblock
      xfs: substitute spaces with tabs
      xfs: fold dfops into the transaction
      xfs: always defer agfl block frees
      xfs: pass transaction to xfs_defer_add()
      xfs: replace xfs_defer_ops ->dop_pending with on-stack list
      xfs: cancel dfops on xfs_defer_finish() error
      xfs: clean out superfluous dfops dop params/vars
      xfs: drop dop param from xfs_defer_op_type ->finish_item() callback
      xfs: automatic dfops inode relogging
      ...
    781fca5b
xfs_iops.c 32.7 KB