• Linus Torvalds's avatar
    Merge tag 'for-6.3-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux · 885ce487
    Linus Torvalds authored
    Pull btrfs updates from David Sterba:
     "The usual mix of performance improvements and new features.
    
      The core change is reworking how checksums are processed, with
      followup cleanups and simplifications. There are two minor changes in
      block layer and iomap code.
    
      Features:
    
       - block group allocation class heuristics:
          - pack files by size (up to 128k, up to 8M, more) to avoid
            fragmentation in block groups, assuming that file size and life
            time is correlated, in particular this may help during balance
          - with tracepoints and extensible in the future
    
      Performance:
    
       - send: cache directory utimes and only emit the command when
         necessary
          - speedup up to 10x
          - smaller final stream produced (no redundant utimes commands
            issued)
          - compatibility not affected
    
       - fiemap: skip backref checks for shared leaves
          - speedup 3x on sample filesystem with all leaves shared (e.g. on
            snapshots)
    
       - micro optimized b-tree key lookup, speedup in metadata operations
         (sample benchmark: fs_mark +10% of files/sec)
    
      Core changes:
    
       - change where checksumming is done in the io path:
          - checksum and read repair does verification at lower layer
          - cascaded cleanups and simplifications
    
       - raid56 refactoring and cleanups
    
      Fixes:
    
       - sysfs: make sure that a run-time change of a feature is correctly
         tracked by the feature files
    
       - scrub: better reporting of tree block errors
    
      Other:
    
       - locally enable -Wmaybe-uninitialized after fixing all warnings
    
       - misc cleanups, spelling fixes
    
      Other code:
    
       - block: export bio_split_rw
    
       - iomap: remove IOMAP_F_ZONE_APPEND"
    
    * tag 'for-6.3-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux: (109 commits)
      btrfs: make kobj_type structures constant
      btrfs: remove the bdev argument to btrfs_rmap_block
      btrfs: don't rely on unchanging ->bi_bdev for zone append remaps
      btrfs: never return true for reads in btrfs_use_zone_append
      btrfs: pass a btrfs_bio to btrfs_use_append
      btrfs: set bbio->file_offset in alloc_new_bio
      btrfs: use file_offset to limit bios size in calc_bio_boundaries
      btrfs: do unsigned integer division in the extent buffer binary search loop
      btrfs: eliminate extra call when doing binary search on extent buffer
      btrfs: raid56: handle endio in scrub_rbio
      btrfs: raid56: handle endio in recover_rbio
      btrfs: raid56: handle endio in rmw_rbio
      btrfs: raid56: submit the read bios from scrub_assemble_read_bios
      btrfs: raid56: fold rmw_read_wait_recover into rmw_read_bios
      btrfs: raid56: fold recover_assemble_read_bios into recover_rbio
      btrfs: raid56: add a bio_list_put helper
      btrfs: raid56: wait for I/O completion in submit_read_bios
      btrfs: raid56: simplify code flow in rmw_rbio
      btrfs: raid56: simplify error handling and code flow in raid56_parity_write
      btrfs: replace btrfs_wait_tree_block_writeback by wait_on_extent_buffer_writeback
      ...
    885ce487
ioctl.c 115 KB