git: kernel - Rename desiredvnodes to maxvnodes, fix deadlock

Matthew Dillon dillon at crater.dragonflybsd.org
Sun Oct 16 14:23:11 PDT 2016


commit 9629eb3587b2cd563eccbd1eab0984b652f5dad5
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date:   Sun Oct 16 14:13:39 2016 -0700

    kernel - Rename desiredvnodes to maxvnodes, fix deadlock
    
    * Rename the kernel variable 'desiredvnodes' to 'maxvnodes' to match
      the sysctl name (which has always been 'maxvnodes'), and to make the
      code more readable.
    
    * Probable fix to a rare mount/umount deadlock which can occur in two
      situations (1) When a large number of mounts and unmounts are running
      concurrently, and (2) During a umount -a, shutdown, or reboot.
    
    * Considered minor, normal use cases will not reproduce this bug.  Only
      synth or poudriere can generate the mount/umount traffic necessary to
      reproduce this bug.
    
    * Also fixes a minor kernel memory leak of the mount structure which can
      occur when a 'df' or filesystem sync races a umount.  Also minor.
    
    Reported-by: marino (mount race)

Summary of changes:
 sys/gnu/vfs/ext2fs/ext2_ihash.c    |  2 +-
 sys/gnu/vfs/ext2fs/ext2_quota.c    |  6 ++++--
 sys/kern/vfs_cache.c               |  6 +++---
 sys/kern/vfs_lock.c                |  8 ++++----
 sys/kern/vfs_mount.c               | 33 ++++++++++++++++++++++++++++-----
 sys/kern/vfs_subr.c                | 24 +++++++++++++++---------
 sys/kern/vfs_syscalls.c            |  6 +++---
 sys/sys/mount.h                    |  3 +++
 sys/sys/vnode.h                    |  2 +-
 sys/vfs/hammer/hammer_vfsops.c     |  2 +-
 sys/vfs/hammer2/hammer2_vfsops.c   |  2 +-
 sys/vfs/hpfs/hpfs_hash.c           |  4 ++--
 sys/vfs/isofs/cd9660/cd9660_node.c |  2 +-
 sys/vfs/msdosfs/msdosfs_denode.c   |  7 ++++---
 sys/vfs/nfs/nfs_node.c             |  2 +-
 sys/vfs/ntfs/ntfs_ihash.c          |  2 +-
 sys/vfs/smbfs/smbfs_vfsops.c       |  2 +-
 sys/vfs/ufs/ffs_softdep.c          |  7 +++----
 sys/vfs/ufs/ufs_ihash.c            |  5 +++--
 sys/vfs/ufs/ufs_quota.c            |  7 +++++--
 usr.bin/systat/systat.1            |  2 +-
 usr.bin/systat/vmstat.c            |  6 +++---
 22 files changed, 89 insertions(+), 51 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/9629eb3587b2cd563eccbd1eab0984b652f5dad5


-- 
DragonFly BSD source repository



More information about the Commits mailing list