• Linus Torvalds's avatar
    Merge tag 'for-4.18-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux · 70499656
    Linus Torvalds authored
    Pull btrfs updates from David Sterba:
     "User visible features:
    
       - added support for the ioctl FS_IOC_FSGETXATTR, per-inode flags,
         successor of GET/SETFLAGS; now supports only existing flags:
         append, immutable, noatime, nodump, sync
    
       - 3 new unprivileged ioctls to allow users to enumerate subvolumes
    
       - dedupe syscall implementation does not restrict the range to 16MiB,
         though it still splits the whole range to 16MiB chunks
    
       - on user demand, rmdir() is able to delete an empty subvolume,
         export the capability in sysfs
    
       - fix inode number types in tracepoints, other cleanups
    
       - send: improved speed when dealing with a large removed directory,
         measurements show decrease from 2000 minutes to 2 minutes on a
         directory with 2 million entries
    
       - pre-commit check of superblock to detect a mysterious in-memory
         corruption
    
       - log message updates
    
      Other changes:
    
       - orphan inode cleanup improved, does no keep long-standing
         reservations that could lead up to early ENOSPC in some cases
    
       - slight improvement of handling snapshotted NOCOW files by avoiding
         some unnecessary tree searches
    
       - avoid OOM when dealing with many unmergeable small extents at flush
         time
    
       - speedup conversion of free space tree representations from/to
         bitmap/tree
    
       - code refactoring, deletion, cleanups:
          + delayed refs
          + delayed iput
          + redundant argument removals
          + memory barrier cleanups
          + remove a redundant mutex supposedly excluding several ioctls to
            run in parallel
    
       - new tracepoints for blockgroup manipulation
    
       - more sanity checks of compressed headers"
    
    * tag 'for-4.18-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux: (183 commits)
      btrfs: Add unprivileged version of ino_lookup ioctl
      btrfs: Add unprivileged ioctl which returns subvolume's ROOT_REF
      btrfs: Add unprivileged ioctl which returns subvolume information
      Btrfs: clean up error handling in btrfs_truncate()
      btrfs: Factor out write portion of btrfs_get_blocks_direct
      btrfs: Factor out read portion of btrfs_get_blocks_direct
      btrfs: return ENOMEM if path allocation fails in btrfs_cross_ref_exist
      btrfs: raid56: Remove VLA usage
      btrfs: return error value if create_io_em failed in cow_file_range
      btrfs: drop useless member qgroup_reserved of btrfs_pending_snapshot
      btrfs: drop unused parameter qgroup_reserved
      btrfs: balance dirty metadata pages in btrfs_finish_ordered_io
      btrfs: lift some btrfs_cross_ref_exist checks in nocow path
      btrfs: Remove fs_info argument from btrfs_uuid_tree_rem
      btrfs: Remove fs_info argument from btrfs_uuid_tree_add
      Btrfs: remove unused check of skip_locking
      Btrfs: remove always true check in unlock_up
      Btrfs: grab write lock directly if write_lock_level is the max level
      Btrfs: move get root out of btrfs_search_slot to a helper
      Btrfs: use more straightforward extent_buffer_uptodate check
      ...
    70499656
extent_io.c 150 KB