git: DragonFly_RELEASE_5_4 kernel - Improve umount operation

Matthew Dillon dillon at
Mon Dec 17 13:55:56 PST 2018

commit 155955f080115ec6ebd3f244be767c2c7ef01f66
Author: Matthew Dillon <dillon at>
Date:   Thu Dec 6 18:50:07 2018 -0800

    kernel - Improve umount operation
    * Move the cache_inval(), and both cache_unmounting() and
      cache_clearmntcache() into the retry loop.  This ensures that
      the nc_refs test actually has a chance to update during the retry.
      This should significantly improve umount operation, reducing umount
      races against exiting processes still using the filesystem.
    * Only issue the allproc scan which matches and clears proc->p_textnch
      on a forced umount.  Otherwise disallow the umount attempt.  We
      may have to reallow this later, but the shutdown code now properly
      clears p_textnch so it should take care of the case for us (which
      is why this code was originally present).
    * Properly dispose of p->p_textnch during shutdown/halt/reboot for
      the calling process, proc0, and init.  This is an attempt to allow
      the system to cleanly unmount root.
    * Cleanup the warning and error messages to clarify umount failures.
    * Only reinstasll the syncer vp on error if umount deinstalled it.
    * Add some debugging sysctls (default disabled).
    Reported-by: marino

Summary of changes:
 sys/kern/kern_shutdown.c |   2 +
 sys/kern/vfs_mount.c     |  19 ++++---
 sys/kern/vfs_syscalls.c  | 138 ++++++++++++++++++++++++++++-------------------
 3 files changed, 95 insertions(+), 64 deletions(-)

DragonFly BSD source repository

More information about the Commits mailing list