Skip to content
  • Linus Torvalds's avatar
    b52bb135
    Merge tag 'xfs-5.12-merge-5' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux · b52bb135
    Linus Torvalds authored
    Pull xfs updates from Darrick Wong:
     "There's a lot going on this time, which seems about right for this
      drama-filled year.
    
      Community developers added some code to speed up freezing when
      read-only workloads are still running, refactored the logging code,
      added checks to prevent file extent counter overflow, reduced iolock
      cycling to speed up fsync and gc scans, and started the slow march
      towards supporting filesystem shrinking.
    
      There's a huge refactoring of the internal speculative preallocation
      garbage collection code which fixes a bunch of bugs, makes the gc
      scheduling per-AG and hence multithreaded, and standardizes the retry
      logic when we try to reserve space or quota, can't, and want to
      trigger a gc scan. We also enable multithreaded quotacheck to reduce
      mount times further. This is also preparation for background file gc,
      which may or may not land for 5.13.
    
      We also fixed some deadlocks in the rename code, fixed a quota
      accounting leak when FSSETXATTR fails, restored the behavior that
      write faults to an mmap'd region actually cause a SIGBUS, fixed a bug
      where sgid directory inheritance wasn't quite working properly, and
      fixed a bug where symlinks weren't working properly in ecryptfs. We
      also now advertise the inode btree counters feature that was
      introduced two cycles ago.
    
      Summary:
    
       - Fix an ABBA deadlock when renaming files on overlayfs.
    
       - Make sure that we can't overflow the inode extent counters when
         adding to or removing extents from a file.
    
       - Make directory sgid inheritance work the same way as all the other
         filesystems.
    
       - Don't drain the buffer cache on freeze and ro remount, which should
         reduce the amount of time if read-only workloads are continuing
         during the freeze.
    
       - Fix a bug where symlink size isn't reported to the vfs in ecryptfs.
    
       - Disentangle log cleaning from log covering. This refactoring sets
         us up for future changes to the log, though for now it simply means
         that we can use covering for freezes, and cleaning becomes
         something we only do at unmount.
    
       - Speed up file fsyncs by reducing iolock cycling.
    
       - Fix delalloc blocks leaking when changing the project id fails
         because of input validation errors in FSSETXATTR.
    
       - Fix oversized quota reservation when converting unwritten extents
         during a DAX write.
    
       - Create a transaction allocation helper function to standardize the
         idiom of allocating a transaction, reserving blocks, locking
         inodes, and reserving quota. Replace all the open-coded logic for
         file creation, file ownership changes, and file modifications to
         use them.
    
       - Actually shut down the fs if the incore quota reservations get
         corrupted.
    
       - Fix background block garbage collection scans to not block and to
         actually clean out CoW staging extents properly.
    
       - Run block gc scans when we run low on project quota.
    
       - Use the standardized transaction allocation helpers to make it so
         that ENOSPC and EDQUOT errors during reservation will back out,
         invoke the block gc scanner, and try again. This is preparation for
         introducing background inode garbage collection in the next cycle.
    
       - Combine speculative post-EOF block garbage collection with
         speculative copy on write block garbage collection.
    
       - Enable multithreaded quotacheck.
    
       - Allow sysadmins to tweak the CPU affinities and maximum concurrency
         levels of quotacheck and background blockgc worker pools.
    
       - Expose the inode btree counter feature in the fs geometry ioctl.
    
       - Cleanups of the growfs code in preparation for starting work on
         filesystem shrinking.
    
       - Fix all the bloody gcc warnings that the maintainer knows about. :P
    
       - Fix a RST syntax error.
    
       - Don't trigger bmbt corruption assertions after the fs shuts down.
    
       - Restore behavior of forcing SIGBUS on a shut down filesystem when
         someone triggers a mmap write fault (or really, any buffered
         write)"
    
    * tag 'xfs-5.12-merge-5' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux: (85 commits)
      xfs: consider shutdown in bmapbt cursor delete assert
      xfs: fix boolreturn.cocci warnings
      xfs: restore shutdown check in mapped write fault path
      xfs: fix rst syntax error in admin guide
      xfs: fix incorrect root dquot corruption error when switching group/project quota types
      xfs: get rid of xfs_growfs_{data,log}_t
      xfs: rename `new' to `delta' in xfs_growfs_data_private()
      libxfs: expose inobtcount in xfs geometry
      xfs: don't bounce the iolock between free_{eof,cow}blocks
      xfs: expose the blockgc workqueue knobs publicly
      xfs: parallelize block preallocation garbage collection
      xfs: rename block gc start and stop functions
      xfs: only walk the incore inode tree once per blockgc scan
      xfs: consolidate the eofblocks and cowblocks workers
      xfs: consolidate incore inode radix tree posteof/cowblocks tags
      xfs: remove trivial eof/cowblocks functions
      xfs: hide xfs_icache_free_cowblocks
      xfs: hide xfs_icache_free_eofblocks
      xfs: relocate the eofb/cowb workqueue functions
      xfs: set WQ_SYSFS on all workqueues in debug mode
      ...
    b52bb135
    Merge tag 'xfs-5.12-merge-5' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux
    Linus Torvalds authored
    Pull xfs updates from Darrick Wong:
     "There's a lot going on this time, which seems about right for this
      drama-filled year.
    
      Community developers added some code to speed up freezing when
      read-only workloads are still running, refactored the logging code,
      added checks to prevent file extent counter overflow, reduced iolock
      cycling to speed up fsync and gc scans, and started the slow march
      towards supporting filesystem shrinking.
    
      There's a huge refactoring of the internal speculative preallocation
      garbage collection code which fixes a bunch of bugs, makes the gc
      scheduling per-AG and hence multithreaded, and standardizes the retry
      logic when we try to reserve space or quota, can't, and want to
      trigger a gc scan. We also enable multithreaded quotacheck to reduce
      mount times further. This is also preparation for background file gc,
      which may or may not land for 5.13.
    
      We also fixed some deadlocks in the rename code, fixed a quota
      accounting leak when FSSETXATTR fails, restored the behavior that
      write faults to an mmap'd region actually cause a SIGBUS, fixed a bug
      where sgid directory inheritance wasn't quite working properly, and
      fixed a bug where symlinks weren't working properly in ecryptfs. We
      also now advertise the inode btree counters feature that was
      introduced two cycles ago.
    
      Summary:
    
       - Fix an ABBA deadlock when renaming files on overlayfs.
    
       - Make sure that we can't overflow the inode extent counters when
         adding to or removing extents from a file.
    
       - Make directory sgid inheritance work the same way as all the other
         filesystems.
    
       - Don't drain the buffer cache on freeze and ro remount, which should
         reduce the amount of time if read-only workloads are continuing
         during the freeze.
    
       - Fix a bug where symlink size isn't reported to the vfs in ecryptfs.
    
       - Disentangle log cleaning from log covering. This refactoring sets
         us up for future changes to the log, though for now it simply means
         that we can use covering for freezes, and cleaning becomes
         something we only do at unmount.
    
       - Speed up file fsyncs by reducing iolock cycling.
    
       - Fix delalloc blocks leaking when changing the project id fails
         because of input validation errors in FSSETXATTR.
    
       - Fix oversized quota reservation when converting unwritten extents
         during a DAX write.
    
       - Create a transaction allocation helper function to standardize the
         idiom of allocating a transaction, reserving blocks, locking
         inodes, and reserving quota. Replace all the open-coded logic for
         file creation, file ownership changes, and file modifications to
         use them.
    
       - Actually shut down the fs if the incore quota reservations get
         corrupted.
    
       - Fix background block garbage collection scans to not block and to
         actually clean out CoW staging extents properly.
    
       - Run block gc scans when we run low on project quota.
    
       - Use the standardized transaction allocation helpers to make it so
         that ENOSPC and EDQUOT errors during reservation will back out,
         invoke the block gc scanner, and try again. This is preparation for
         introducing background inode garbage collection in the next cycle.
    
       - Combine speculative post-EOF block garbage collection with
         speculative copy on write block garbage collection.
    
       - Enable multithreaded quotacheck.
    
       - Allow sysadmins to tweak the CPU affinities and maximum concurrency
         levels of quotacheck and background blockgc worker pools.
    
       - Expose the inode btree counter feature in the fs geometry ioctl.
    
       - Cleanups of the growfs code in preparation for starting work on
         filesystem shrinking.
    
       - Fix all the bloody gcc warnings that the maintainer knows about. :P
    
       - Fix a RST syntax error.
    
       - Don't trigger bmbt corruption assertions after the fs shuts down.
    
       - Restore behavior of forcing SIGBUS on a shut down filesystem when
         someone triggers a mmap write fault (or really, any buffered
         write)"
    
    * tag 'xfs-5.12-merge-5' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux: (85 commits)
      xfs: consider shutdown in bmapbt cursor delete assert
      xfs: fix boolreturn.cocci warnings
      xfs: restore shutdown check in mapped write fault path
      xfs: fix rst syntax error in admin guide
      xfs: fix incorrect root dquot corruption error when switching group/project quota types
      xfs: get rid of xfs_growfs_{data,log}_t
      xfs: rename `new' to `delta' in xfs_growfs_data_private()
      libxfs: expose inobtcount in xfs geometry
      xfs: don't bounce the iolock between free_{eof,cow}blocks
      xfs: expose the blockgc workqueue knobs publicly
      xfs: parallelize block preallocation garbage collection
      xfs: rename block gc start and stop functions
      xfs: only walk the incore inode tree once per blockgc scan
      xfs: consolidate the eofblocks and cowblocks workers
      xfs: consolidate incore inode radix tree posteof/cowblocks tags
      xfs: remove trivial eof/cowblocks functions
      xfs: hide xfs_icache_free_cowblocks
      xfs: hide xfs_icache_free_eofblocks
      xfs: relocate the eofb/cowb workqueue functions
      xfs: set WQ_SYSFS on all workqueues in debug mode
      ...
Loading