• Linus Torvalds's avatar
    Merge tag 'xfs-6.10-merge-6' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux · 119d1b8a
    Linus Torvalds authored
    Pull xfs updates from Chandan Babu:
     "Online repair feature continues to be expanded. Also, we now support
      delayed allocation for realtime devices which have an extent size that
      is equal to filesystem's block size.
    
      New code:
    
       - Introduce Parent Pointer extended attribute for inodes
    
       - Bring back delalloc support for realtime devices which have an
         extent size that is equal to filesystem's block size
    
       - Improve performance of log incompat feature handling
    
      Online Repair:
    
       - Implement atomic file content exchanges i.e. exchange ranges of
         bytes between two files atomically
    
       - Create temporary files to repair file-based metadata. This uses
         atomic file content exchange facility to swap file fork mappings
         between the temporary file and the metadata inode
    
       - Allow callers of directory/xattr code to set an explicit owner
         number to be written into the header fields of any new blocks that
         are created. This is required to avoid walking every block of the
         new structure and modify their ownership during online repair
    
       - Repair more data structures:
           - Extended attributes
           - Inode unlinked state
           - Directories
           - Symbolic links
           - AGI's unlinked inode list
           - Parent pointers
    
       - Move Orphan files to lost and found directory
    
       - Fixes for Inode repair functionality
    
       - Introduce a new sub-AG FITRIM implementation to reduce the duration
         for which the AGF lock is held
    
       - Updates for the design documentation
    
       - Use Parent Pointers to assist in checking directories, parent
         pointers, extended attributes, and link counts
    
      Fixes:
    
       - Prevent userspace from reading invalid file data due to incorrect.
         updation of file size when performing a non-atomic clone operation
    
       - Minor fixes to online repair
    
       - Fix confusing return values from xfs_bmapi_write()
    
       - Fix an out of bounds access due to incorrect h_size during log
         recovery
    
       - Defer upgrading the extent counters in xfs_reflink_end_cow_extent()
         until we know we are going to modify the extent mapping
    
       - Remove racy access to if_bytes check in
         xfs_reflink_end_cow_extent()
    
       - Fix sparse warnings
    
      Cleanups:
    
       - Hold inode locks on all files involved in a rename until the
         completion of the operation. This is in preparation for the parent
         pointers patchset where parent pointers are applied in a separate
         chained update from the actual directory update
    
       - Compile out v4 support when disabled
    
       - Cleanup xfs_extent_busy_clear()
    
       - Remove unused flags and fields from struct xfs_da_args
    
       - Remove definitions of unused functions
    
       - Improve extended attribute validation
    
       - Add higher level directory operations helpers to remove duplication
         of code
    
       - Cleanup quota (un)reservation interfaces"
    
    * tag 'xfs-6.10-merge-6' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux: (221 commits)
      xfs: simplify iext overflow checking and upgrade
      xfs: remove a racy if_bytes check in xfs_reflink_end_cow_extent
      xfs: upgrade the extent counters in xfs_reflink_end_cow_extent later
      xfs: xfs_quota_unreserve_blkres can't fail
      xfs: consolidate the xfs_quota_reserve_blkres definitions
      xfs: clean up buffer allocation in xlog_do_recovery_pass
      xfs: fix log recovery buffer allocation for the legacy h_size fixup
      xfs: widen flags argument to the xfs_iflags_* helpers
      xfs: minor cleanups of xfs_attr3_rmt_blocks
      xfs: create a helper to compute the blockcount of a max sized remote value
      xfs: turn XFS_ATTR3_RMT_BUF_SPACE into a function
      xfs: use unsigned ints for non-negative quantities in xfs_attr_remote.c
      xfs: do not allocate the entire delalloc extent in xfs_bmapi_write
      xfs: fix xfs_bmap_add_extent_delay_real for partial conversions
      xfs: remove the xfs_iext_peek_prev_extent call in xfs_bmapi_allocate
      xfs: pass the actual offset and len to allocate to xfs_bmapi_allocate
      xfs: don't open code XFS_FILBLKS_MIN in xfs_bmapi_write
      xfs: lift a xfs_valid_startblock into xfs_bmapi_allocate
      xfs: remove the unusued tmp_logflags variable in xfs_bmapi_allocate
      xfs: fix error returns from xfs_bmapi_write
      ...
    119d1b8a
xfs_file.c 36.3 KB