• Linus Torvalds's avatar
    Merge tag 'for-5.4-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux · 7d14df2d
    Linus Torvalds authored
    Pull btrfs updates from David Sterba:
     "This continues with work on code refactoring, sanity checks and space
      handling. There are some less user visible changes, nothing that would
      particularly stand out.
    
      User visible changes:
       - tree checker, more sanity checks of:
           - ROOT_ITEM (key, size, generation, level, alignment, flags)
           - EXTENT_ITEM and METADATA_ITEM checks (key, size, offset,
             alignment, refs)
           - tree block reference items
           - EXTENT_DATA_REF (key, hash, offset)
    
       - deprecate flag BTRFS_SUBVOL_CREATE_ASYNC for subvolume creation
         ioctl, scheduled removal in 5.7
    
       - delete stale and unused UAPI definitions
         BTRFS_DEV_REPLACE_ITEM_STATE_*
    
       - improved export of debugging information available via existing
         sysfs directory structure
    
       - try harder to delete relations between qgroups and allow to delete
         orphan entries
    
       - remove unreliable space checks before relocation starts
    
      Core:
       - space handling:
           - improved ticket reservations and other high level logic in
             order to remove special cases
           - factor flushing infrastructure and use it for different
             contexts, allows to remove some special case handling
           - reduce metadata reservation when only updating inodes
           - reduce global block reserve minimum size (affects small
             filesystems)
           - improved overcommit logic wrt global block reserve
    
       - tests:
           - fix memory leaks in extent IO tree
           - catch all TRIM range
    
      Fixes:
       - fix ENOSPC errors, leading to transaction aborts, when cloning
         extents
    
       - several fixes for inode number cache (mount option inode_cache)
    
       - fix potential soft lockups during send when traversing large trees
    
       - fix unaligned access to space cache pages with SLUB debug on
         (PowerPC)
    
      Other:
       - refactoring public/private functions, moving to new or more
         appropriate files
    
       - defines converted to enums
    
       - error handling improvements
    
       - more assertions and comments
    
       - old code deletion"
    
    * tag 'for-5.4-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux: (138 commits)
      btrfs: Relinquish CPUs in btrfs_compare_trees
      btrfs: Don't assign retval of btrfs_try_tree_write_lock/btrfs_tree_read_lock_atomic
      btrfs: create structure to encode checksum type and length
      btrfs: turn checksum type define into an enum
      btrfs: add enospc debug messages for ticket failure
      btrfs: do not account global reserve in can_overcommit
      btrfs: use btrfs_try_granting_tickets in update_global_rsv
      btrfs: always reserve our entire size for the global reserve
      btrfs: change the minimum global reserve size
      btrfs: rename btrfs_space_info_add_old_bytes
      btrfs: remove orig_bytes from reserve_ticket
      btrfs: fix may_commit_transaction to deal with no partial filling
      btrfs: rework wake_all_tickets
      btrfs: refactor the ticket wakeup code
      btrfs: stop partially refilling tickets when releasing space
      btrfs: add space reservation tracepoint for reserved bytes
      btrfs: roll tracepoint into btrfs_space_info_update helper
      btrfs: do not allow reservations if we have pending tickets
      btrfs: stop clearing EXTENT_DIRTY in inode I/O tree
      btrfs: treat RWF_{,D}SYNC writes as sync for CRCs
      ...
    7d14df2d
extent_io.c 154 KB