• Linus Torvalds's avatar
    Merge tag 'for-5.16-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux · 037c50bf
    Linus Torvalds authored
    Pull btrfs updates from David Sterba:
     "The updates this time are more under the hood and enhancing existing
      features (subpage with compression and zoned namespaces).
    
      Performance related:
    
       - misc small inode logging improvements (+3% throughput, -11% latency
         on sample dbench workload)
    
       - more efficient directory logging: bulk item insertion, less tree
         searches and locking
    
       - speed up bulk insertion of items into a b-tree, which is used when
         logging directories, when running delayed items for directories
         (fsync and transaction commits) and when running the slow path
         (full sync) of an fsync (bulk creation run time -4%, deletion -12%)
    
      Core:
    
       - continued subpage support
          - make defragmentation work
          - make compression write work
    
       - zoned mode
          - support ZNS (zoned namespaces), zone capacity is number of
            usable blocks in each zone
          - add dedicated block group (zoned) for relocation, to prevent
            out of order writes in some cases
          - greedy block group reclaim, pick the ones with least usable
            space first
    
       - preparatory work for send protocol updates
    
       - error handling improvements
    
       - cleanups and refactoring
    
      Fixes:
    
       - lockdep warnings
          - in show_devname callback, on seeding device
          - device delete on loop device due to conversions to workqueues
    
       - fix deadlock between chunk allocation and chunk btree modifications
    
       - fix tracking of missing device count and status"
    
    * tag 'for-5.16-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux: (140 commits)
      btrfs: remove root argument from check_item_in_log()
      btrfs: remove root argument from add_link()
      btrfs: remove root argument from btrfs_unlink_inode()
      btrfs: remove root argument from drop_one_dir_item()
      btrfs: clear MISSING device status bit in btrfs_close_one_device
      btrfs: call btrfs_check_rw_degradable only if there is a missing device
      btrfs: send: prepare for v2 protocol
      btrfs: fix comment about sector sizes supported in 64K systems
      btrfs: update device path inode time instead of bd_inode
      fs: export an inode_update_time helper
      btrfs: fix deadlock when defragging transparent huge pages
      btrfs: sysfs: convert scnprintf and snprintf to sysfs_emit
      btrfs: make btrfs_super_block size match BTRFS_SUPER_INFO_SIZE
      btrfs: update comments for chunk allocation -ENOSPC cases
      btrfs: fix deadlock between chunk allocation and chunk btree modifications
      btrfs: zoned: use greedy gc for auto reclaim
      btrfs: check-integrity: stop storing the block device name in btrfsic_dev_state
      btrfs: use btrfs_get_dev_args_from_path in dev removal ioctls
      btrfs: add a btrfs_get_dev_args_from_path helper
      btrfs: handle device lookup with btrfs_dev_lookup_args
      ...
    037c50bf
volumes.c 223 KB