1. 19 Oct, 2020 3 commits
    • Linus Torvalds's avatar
      Merge tag 'xfs-5.10-merge-5' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux · bbe85027
      Linus Torvalds authored
      Pull more xfs updates from Darrick Wong:
       "The second large pile of new stuff for 5.10, with changes even more
        monumental than last week!
      
        We are formally announcing the deprecation of the V4 filesystem format
        in 2030. All users must upgrade to the V5 format, which contains
        design improvements that greatly strengthen metadata validation,
        supports reflink and online fsck, and is the intended vehicle for
        handling timestamps past 2038. We're also deprecating the old Irix
        behavioral tweaks in September 2025.
      
        Coming along for the ride are two design changes to the deferred
        metadata ops subsystem. One of the improvements is to retain correct
        logical ordering of tasks and subtasks, which is a more logical design
        for upper layers of XFS and will become necessary when we add atomic
        file range swaps and commits. The second improvement to deferred ops
        improves the scalability of the log by helping the log tail to move
        forward during long-running operations. This reduces log contention
        when there are a large number of threads trying to run transactions.
      
        In addition to that, this fixes numerous small bugs in log recovery;
        refactors logical intent log item recovery to remove the last
        remaining place in XFS where we could have nested transactions; fixes
        a couple of ways that intent log item recovery could fail in ways that
        wouldn't have happened in the regular commit paths; fixes a deadlock
        vector in the GETFSMAP implementation (which improves its performance
        by 20%); and fixes serious bugs in the realtime growfs, fallocate, and
        bitmap handling code.
      
        Summary:
      
         - Deprecate the V4 filesystem format, some disused mount options, and
           some legacy sysctl knobs now that we can support dates into the
           25th century. Note that removal of V4 support will not happen until
           the early 2030s.
      
         - Fix some probles with inode realtime flag propagation.
      
         - Fix some buffer handling issues when growing a rt filesystem.
      
         - Fix a problem where a BMAP_REMAP unmap call would free rt extents
           even though the purpose of BMAP_REMAP is to avoid freeing the
           blocks.
      
         - Strengthen the dabtree online scrubber to check hash values on
           child dabtree blocks.
      
         - Actually log new intent items created as part of recovering log
           intent items.
      
         - Fix a bug where quotas weren't attached to an inode undergoing bmap
           intent item recovery.
      
         - Fix a buffer overrun problem with specially crafted log buffer
           headers.
      
         - Various cleanups to type usage and slightly inaccurate comments.
      
         - More cleanups to the xattr, log, and quota code.
      
         - Don't run the (slower) shared-rmap operations on attr fork
           mappings.
      
         - Fix a bug where we failed to check the LSN of finobt blocks during
           replay and could therefore overwrite newer data with older data.
      
         - Clean up the ugly nested transaction mess that log recovery uses to
           stage intent item recovery in the correct order by creating a
           proper data structure to capture recovered chains.
      
         - Use the capture structure to resume intent item chains with the
           same log space and block reservations as when they were captured.
      
         - Fix a UAF bug in bmap intent item recovery where we failed to
           maintain our reference to the incore inode if the bmap operation
           needed to relog itself to continue.
      
         - Rearrange the defer ops mechanism to finish newly created subtasks
           of a parent task before moving on to the next parent task.
      
         - Automatically relog intent items in deferred ops chains if doing so
           would help us avoid pinning the log tail. This will help fix some
           log scaling problems now and will facilitate atomic file updates
           later.
      
         - Fix a deadlock in the GETFSMAP implementation by using an internal
           memory buffer to reduce indirect calls and copies to userspace,
           thereby improving its performance by ~20%.
      
         - Fix various problems when calling growfs on a realtime volume would
           not fully update the filesystem metadata.
      
         - Fix broken Kconfig asking about deprecated XFS when XFS is
           disabled"
      
      * tag 'xfs-5.10-merge-5' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux: (48 commits)
        xfs: fix Kconfig asking about XFS_SUPPORT_V4 when XFS_FS=n
        xfs: fix high key handling in the rt allocator's query_range function
        xfs: annotate grabbing the realtime bitmap/summary locks in growfs
        xfs: make xfs_growfs_rt update secondary superblocks
        xfs: fix realtime bitmap/summary file truncation when growing rt volume
        xfs: fix the indent in xfs_trans_mod_dquot
        xfs: do the ASSERT for the arguments O_{u,g,p}dqpp
        xfs: fix deadlock and streamline xfs_getfsmap performance
        xfs: limit entries returned when counting fsmap records
        xfs: only relog deferred intent items if free space in the log gets low
        xfs: expose the log push threshold
        xfs: periodically relog deferred intent items
        xfs: change the order in which child and parent defer ops are finished
        xfs: fix an incore inode UAF in xfs_bui_recover
        xfs: clean up xfs_bui_item_recover iget/trans_alloc/ilock ordering
        xfs: clean up bmap intent item recovery checking
        xfs: xfs_defer_capture should absorb remaining transaction reservation
        xfs: xfs_defer_capture should absorb remaining block reservations
        xfs: proper replay of deferred ops queued during log recovery
        xfs: remove XFS_LI_RECOVERED
        ...
      bbe85027
    • Linus Torvalds's avatar
      Merge tag 'fuse-update-5.10' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse · 69456535
      Linus Torvalds authored
      Pull fuse updates from Miklos Szeredi:
      
       - Support directly accessing host page cache from virtiofs. This can
         improve I/O performance for various workloads, as well as reducing
         the memory requirement by eliminating double caching. Thanks to Vivek
         Goyal for doing most of the work on this.
      
       - Allow automatic submounting inside virtiofs. This allows unique
         st_dev/ st_ino values to be assigned inside the guest to files
         residing on different filesystems on the host. Thanks to Max Reitz
         for the patches.
      
       - Fix an old use after free bug found by Pradeep P V K.
      
      * tag 'fuse-update-5.10' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse: (25 commits)
        virtiofs: calculate number of scatter-gather elements accurately
        fuse: connection remove fix
        fuse: implement crossmounts
        fuse: Allow fuse_fill_super_common() for submounts
        fuse: split fuse_mount off of fuse_conn
        fuse: drop fuse_conn parameter where possible
        fuse: store fuse_conn in fuse_req
        fuse: add submount support to <uapi/linux/fuse.h>
        fuse: fix page dereference after free
        virtiofs: add logic to free up a memory range
        virtiofs: maintain a list of busy elements
        virtiofs: serialize truncate/punch_hole and dax fault path
        virtiofs: define dax address space operations
        virtiofs: add DAX mmap support
        virtiofs: implement dax read/write operations
        virtiofs: introduce setupmapping/removemapping commands
        virtiofs: implement FUSE_INIT map_alignment field
        virtiofs: keep a list of free dax memory ranges
        virtiofs: add a mount option to enable dax
        virtiofs: set up virtio_fs dax_device
        ...
      69456535
    • Linus Torvalds's avatar
      Merge tag 'zonefs-5.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/dlemoal/zonefs · 922a763a
      Linus Torvalds authored
      Pull zonefs updates from Damien Le Moal:
       "Add an 'explicit-open' mount option to automatically issue a
        REQ_OP_ZONE_OPEN command to the device whenever a sequential zone file
        is open for writing for the first time.
      
        This avoids 'insufficient zone resources' errors for write operations
        on some drives with limited zone resources or on ZNS drives with a
        limited number of active zones. From Johannes"
      
      * tag 'zonefs-5.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/dlemoal/zonefs:
        zonefs: document the explicit-open mount option
        zonefs: open/close zone on file open/close
        zonefs: provide no-lock zonefs_io_error variant
        zonefs: introduce helper for zone management
      922a763a
  2. 18 Oct, 2020 37 commits