Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 16 May 2001 11:04:37 -0700 (PDT)
From:      Ian Dowse <iedowse@FreeBSD.org>
To:        cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org
Subject:   cvs commit: src/sys/coda coda_vfsops.c src/sys/fs/devfs devfs_vfsops.c src/sys/fs/hpfs hpfs_vfsops.c src/sys/fs/smbfs smbfs_vfsops.c src/sys/gnu/ext2fs ext2_vfsops.c src/sys/isofs/cd9660 cd9660_vfsops.c src/sys/kern vfs_subr.c ...
Message-ID:  <200105161804.f4GI4bV81778@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
iedowse     2001/05/16 11:04:37 PDT

  Modified files:
    sys/coda             coda_vfsops.c 
    sys/fs/devfs         devfs_vfsops.c 
    sys/fs/hpfs          hpfs_vfsops.c 
    sys/fs/smbfs         smbfs_vfsops.c 
    sys/gnu/ext2fs       ext2_vfsops.c 
    sys/isofs/cd9660     cd9660_vfsops.c 
    sys/kern             vfs_subr.c 
    sys/miscfs/fdesc     fdesc_vfsops.c 
    sys/miscfs/nullfs    null_vfsops.c 
    sys/miscfs/portal    portal_vfsops.c 
    sys/miscfs/umapfs    umap_vfsops.c 
    sys/miscfs/union     union_vfsops.c 
    sys/msdosfs          msdosfs_vfsops.c 
    sys/nfs              nfs_vfsops.c 
    sys/ntfs             ntfs_vfsops.c 
    sys/nwfs             nwfs_vfsops.c 
    sys/sys              vnode.h 
    sys/ufs/ffs          ffs_vfsops.c 
  Log:
  Change the second argument of vflush() to an integer that specifies
  the number of references on the filesystem root vnode to be both
  expected and released. Many filesystems hold an extra reference on
  the filesystem root vnode, which must be accounted for when
  determining if the filesystem is busy and then released if it isn't
  busy. The old `skipvp' approach required individual filesystem
  xxx_unmount functions to re-implement much of vflush()'s logic to
  deal with the root vnode.
  
  All 9 filesystems that hold an extra reference on the root vnode
  got the logic wrong in the case of forced unmounts, so `umount -f'
  would always fail if there were any extra root vnode references.
  Fix this issue centrally in vflush(), now that we can.
  
  This commit also fixes a vnode reference leak in devfs, which could
  result in idle devfs filesystems that refuse to unmount.
  
  Reviewed by:	phk, bp
  
  Revision  Changes    Path
  1.32      +2 -2      src/sys/coda/coda_vfsops.c
  1.16      +3 -13     src/sys/fs/devfs/devfs_vfsops.c
  1.13      +2 -2      src/sys/fs/hpfs/hpfs_vfsops.c
  1.2       +3 -16     src/sys/fs/smbfs/smbfs_vfsops.c
  1.79      +3 -3      src/sys/gnu/ext2fs/ext2_vfsops.c
  1.91      +2 -2      src/sys/isofs/cd9660/cd9660_vfsops.c
  1.312     +46 -12    src/sys/kern/vfs_subr.c
  1.27      +5 -13     src/sys/miscfs/fdesc/fdesc_vfsops.c
  1.47      +3 -24     src/sys/miscfs/nullfs/null_vfsops.c
  1.30      +3 -13     src/sys/miscfs/portal/portal_vfsops.c
  1.37      +3 -16     src/sys/miscfs/umapfs/umap_vfsops.c
  1.44      +7 -25     src/sys/miscfs/union/union_vfsops.c
  1.76      +3 -3      src/sys/msdosfs/msdosfs_vfsops.c
  1.99      +5 -29     src/sys/nfs/nfs_vfsops.c
  1.30      +4 -4      src/sys/ntfs/ntfs_vfsops.c
  1.17      +4 -23     src/sys/nwfs/nwfs_vfsops.c
  1.151     +2 -2      src/sys/sys/vnode.h
  1.154     +4 -4      src/sys/ufs/ffs/ffs_vfsops.c


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe cvs-all" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200105161804.f4GI4bV81778>