# git rev-parse -q --verify c0927a7a5391f7d8e593e5e50ead7505a23cadf9^{commit} c0927a7a5391f7d8e593e5e50ead7505a23cadf9 already have revision, skipping fetch # git checkout -q -f -B kisskb c0927a7a5391f7d8e593e5e50ead7505a23cadf9 # git clean -qxdf # < git log -1 # commit c0927a7a5391f7d8e593e5e50ead7505a23cadf9 # Merge: 1899946aaf25 6e2985c938e8 # Author: Linus Torvalds # Date: Tue Feb 28 16:08:30 2023 -0800 # # Merge tag 'xfs-6.3-merge-4' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux # # Pull moar xfs updates from Darrick Wong: # "This contains a fix for a deadlock in the allocator. It continues the # slow march towards being able to offline AGs, and it refactors the # interface to the xfs allocator to be less indirection happy. # # Summary: # # - Fix a deadlock in the free space allocator due to the AG-walking # algorithm forgetting to follow AG-order locking rules # # - Make the inode allocator prefer existing free inodes instead of # failing to allocate new inode chunks when free space is low # # - Set minleft correctly when setting allocator parameters for bmap # changes # # - Fix uninitialized variable access in the getfsmap code # # - Make a distinction between active and passive per-AG structure # references. For now, active references are taken to perform some # work in an AG on behalf of a high level operation; passive # references are used by lower level code to finish operations # started by other threads. Eventually this will become part of # online shrink # # - Split out all the different allocator strategies into separate # functions to move us away from design antipattern of filling out a # huge structure for various differentish things and issuing a single # function multiplexing call # # - Various cleanups in the filestreams allocator code, which we might # very well want to deprecate instead of continuing # # - Fix a bug with the agi rotor code that was introduced earlier in # this series" # # * tag 'xfs-6.3-merge-4' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux: (44 commits) # xfs: restore old agirotor behavior # xfs: fix uninitialized variable access # xfs: refactor the filestreams allocator pick functions # xfs: return a referenced perag from filestreams allocator # xfs: pass perag to filestreams tracing # xfs: use for_each_perag_wrap in xfs_filestream_pick_ag # xfs: track an active perag reference in filestreams # xfs: factor out MRU hit case in xfs_filestream_select_ag # xfs: remove xfs_filestream_select_ag() longest extent check # xfs: merge new filestream AG selection into xfs_filestream_select_ag() # xfs: merge filestream AG lookup into xfs_filestream_select_ag() # xfs: move xfs_bmap_btalloc_filestreams() to xfs_filestreams.c # xfs: use xfs_bmap_longest_free_extent() in filestreams # xfs: get rid of notinit from xfs_bmap_longest_free_extent # xfs: factor out filestreams from xfs_bmap_btalloc_nullfb # xfs: convert trim to use for_each_perag_range # xfs: convert xfs_alloc_vextent_iterate_ags() to use perag walker # xfs: move the minimum agno checks into xfs_alloc_vextent_check_args # xfs: fold xfs_alloc_ag_vextent() into callers # xfs: move allocation accounting to xfs_alloc_vextent_set_fsbno() # ... # < /opt/cross/kisskb/korg/gcc-8.5.0-nolibc/x86_64-linux/bin/x86_64-linux-gcc --version # < /opt/cross/kisskb/korg/gcc-8.5.0-nolibc/x86_64-linux/bin/x86_64-linux-ld --version # < git log --format=%s --max-count=1 c0927a7a5391f7d8e593e5e50ead7505a23cadf9 # < make -s -j 120 ARCH=x86_64 O=/kisskb/build/linus_x86_64-allnoconfig_x86_64-gcc8 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-8.5.0-nolibc/x86_64-linux/bin/x86_64-linux- allnoconfig # < make -s -j 120 ARCH=x86_64 O=/kisskb/build/linus_x86_64-allnoconfig_x86_64-gcc8 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-8.5.0-nolibc/x86_64-linux/bin/x86_64-linux- help # make -s -j 120 ARCH=x86_64 O=/kisskb/build/linus_x86_64-allnoconfig_x86_64-gcc8 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-8.5.0-nolibc/x86_64-linux/bin/x86_64-linux- olddefconfig # make -s -j 120 ARCH=x86_64 O=/kisskb/build/linus_x86_64-allnoconfig_x86_64-gcc8 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-8.5.0-nolibc/x86_64-linux/bin/x86_64-linux- Completed OK # rm -rf /kisskb/build/linus_x86_64-allnoconfig_x86_64-gcc8 # Build took: 0:00:27.551601