Skip to content
  • Linus Torvalds's avatar
    81a046b1
    Merge tag 'for-5.6-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux · 81a046b1
    Linus Torvalds authored
    Pull btrfs updates from David Sterba:
     "Features, highlights:
    
       - async discard
           - "mount -o discard=async" to enable it
           - freed extents are not discarded immediatelly, but grouped
             together and trimmed later, with IO rate limiting
           - the "sync" mode submits short extents that could have been
             ignored completely by the device, for SATA prior to 3.1 the
             requests are unqueued and have a big impact on performance
           - the actual discard IO requests have been moved out of
             transaction commit to a worker thread, improving commit latency
           - IO rate and request size can be tuned by sysfs files, for now
             enabled only with CONFIG_BTRFS_DEBUG as we might need to
             add/delete the files and don't have a stable-ish ABI for
             general use, defaults are conservative
    
       - export device state info in sysfs, eg. missing, writeable
    
       - no discard of extents known to be untouched on disk (eg. after
         reservation)
    
       - device stats reset is logged with process name and PID that called
         the ioctl
    
      Fixes:
    
       - fix missing hole after hole punching and fsync when using NO_HOLES
    
       - writeback: range cyclic mode could miss some dirty pages and lead
         to OOM
    
       - two more corner cases for metadata_uuid change after power loss
         during the change
    
       - fix infinite loop during fsync after mix of rename operations
    
      Core changes:
    
       - qgroup assign returns ENOTCONN when quotas not enabled, used to
         return EINVAL that was confusing
    
       - device closing does not need to allocate memory anymore
    
       - snapshot aware code got removed, disabled for years due to
         performance problems, reimplmentation will allow to select wheter
         defrag breaks or does not break COW on shared extents
    
       - tree-checker:
           - check leaf chunk item size, cross check against number of
             stripes
           - verify location keys for DIR_ITEM, DIR_INDEX and XATTR items
    
       - new self test for physical -> logical mapping code, used for super
         block range exclusion
    
       - assertion helpers/macros updated to avoid objtool "unreachable
         code" reports on older compilers or config option combinations"
    
    * tag 'for-5.6-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux: (84 commits)
      btrfs: free block groups after free'ing fs trees
      btrfs: Fix split-brain handling when changing FSID to metadata uuid
      btrfs: Handle another split brain scenario with metadata uuid feature
      btrfs: Factor out metadata_uuid code from find_fsid.
      btrfs: Call find_fsid from find_fsid_inprogress
      Btrfs: fix infinite loop during fsync after rename operations
      btrfs: set trans->drity in btrfs_commit_transaction
      btrfs: drop log root for dropped roots
      btrfs: sysfs, add devid/dev_state kobject and device attributes
      btrfs: Refactor btrfs_rmap_block to improve readability
      btrfs: Add self-tests for btrfs_rmap_block
      btrfs: selftests: Add support for dummy devices
      btrfs: Move and unexport btrfs_rmap_block
      btrfs: separate definition of assertion failure handlers
      btrfs: device stats, log when stats are zeroed
      btrfs: fix improper setting of scanned for range cyclic write cache pages
      btrfs: safely advance counter when looking up bio csums
      btrfs: remove unused member btrfs_device::work
      btrfs: remove unnecessary wrapper get_alloc_profile
      btrfs: add correction to handle -1 edge case in async discard
      ...
    81a046b1
    Merge tag 'for-5.6-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux
    Linus Torvalds authored
    Pull btrfs updates from David Sterba:
     "Features, highlights:
    
       - async discard
           - "mount -o discard=async" to enable it
           - freed extents are not discarded immediatelly, but grouped
             together and trimmed later, with IO rate limiting
           - the "sync" mode submits short extents that could have been
             ignored completely by the device, for SATA prior to 3.1 the
             requests are unqueued and have a big impact on performance
           - the actual discard IO requests have been moved out of
             transaction commit to a worker thread, improving commit latency
           - IO rate and request size can be tuned by sysfs files, for now
             enabled only with CONFIG_BTRFS_DEBUG as we might need to
             add/delete the files and don't have a stable-ish ABI for
             general use, defaults are conservative
    
       - export device state info in sysfs, eg. missing, writeable
    
       - no discard of extents known to be untouched on disk (eg. after
         reservation)
    
       - device stats reset is logged with process name and PID that called
         the ioctl
    
      Fixes:
    
       - fix missing hole after hole punching and fsync when using NO_HOLES
    
       - writeback: range cyclic mode could miss some dirty pages and lead
         to OOM
    
       - two more corner cases for metadata_uuid change after power loss
         during the change
    
       - fix infinite loop during fsync after mix of rename operations
    
      Core changes:
    
       - qgroup assign returns ENOTCONN when quotas not enabled, used to
         return EINVAL that was confusing
    
       - device closing does not need to allocate memory anymore
    
       - snapshot aware code got removed, disabled for years due to
         performance problems, reimplmentation will allow to select wheter
         defrag breaks or does not break COW on shared extents
    
       - tree-checker:
           - check leaf chunk item size, cross check against number of
             stripes
           - verify location keys for DIR_ITEM, DIR_INDEX and XATTR items
    
       - new self test for physical -> logical mapping code, used for super
         block range exclusion
    
       - assertion helpers/macros updated to avoid objtool "unreachable
         code" reports on older compilers or config option combinations"
    
    * tag 'for-5.6-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux: (84 commits)
      btrfs: free block groups after free'ing fs trees
      btrfs: Fix split-brain handling when changing FSID to metadata uuid
      btrfs: Handle another split brain scenario with metadata uuid feature
      btrfs: Factor out metadata_uuid code from find_fsid.
      btrfs: Call find_fsid from find_fsid_inprogress
      Btrfs: fix infinite loop during fsync after rename operations
      btrfs: set trans->drity in btrfs_commit_transaction
      btrfs: drop log root for dropped roots
      btrfs: sysfs, add devid/dev_state kobject and device attributes
      btrfs: Refactor btrfs_rmap_block to improve readability
      btrfs: Add self-tests for btrfs_rmap_block
      btrfs: selftests: Add support for dummy devices
      btrfs: Move and unexport btrfs_rmap_block
      btrfs: separate definition of assertion failure handlers
      btrfs: device stats, log when stats are zeroed
      btrfs: fix improper setting of scanned for range cyclic write cache pages
      btrfs: safely advance counter when looking up bio csums
      btrfs: remove unused member btrfs_device::work
      btrfs: remove unnecessary wrapper get_alloc_profile
      btrfs: add correction to handle -1 edge case in async discard
      ...
Loading