diff options
author | phk <phk@FreeBSD.org> | 1999-08-26 14:53:31 +0000 |
---|---|---|
committer | phk <phk@FreeBSD.org> | 1999-08-26 14:53:31 +0000 |
commit | 591c94d4c67807bb48f559afc01b6fb90384559a (patch) | |
tree | 73ca4b4fe4032530fe6f8e4ed54f5286fd2242a8 /sys/ufs | |
parent | 2c6415fbf944c8b04586e326b6d563bbb8c9d06b (diff) | |
download | FreeBSD-src-591c94d4c67807bb48f559afc01b6fb90384559a.zip FreeBSD-src-591c94d4c67807bb48f559afc01b6fb90384559a.tar.gz |
Simplify the handling of VCHR and VBLK vnodes using the new dev_t:
Make the alias list a SLIST.
Drop the "fast recycling" optimization of vnodes (including
the returning of a prexisting but stale vnode from checkalias).
It doesn't buy us anything now that we don't hardlimit
vnodes anymore.
Rename checkalias2() and checkalias() to addalias() and
addaliasu() - which takes dev_t and udev_t arg respectively.
Make the revoke syscalls use vcount() instead of VALIASED.
Remove VALIASED flag, we don't need it now and it is faster
to traverse the much shorter lists than to maintain the
flag.
vfs_mountedon() can check the dev_t directly, all the vnodes
point to the same one.
Print the devicename in specfs/vprint().
Remove a couple of stale LFS vnode flags.
Remove unimplemented/unused LK_DRAINED;
Diffstat (limited to 'sys/ufs')
-rw-r--r-- | sys/ufs/mfs/mfs_vfsops.c | 5 | ||||
-rw-r--r-- | sys/ufs/ufs/ufs_vnops.c | 21 |
2 files changed, 4 insertions, 22 deletions
diff --git a/sys/ufs/mfs/mfs_vfsops.c b/sys/ufs/mfs/mfs_vfsops.c index 78a0ff4..87b129a 100644 --- a/sys/ufs/mfs/mfs_vfsops.c +++ b/sys/ufs/mfs/mfs_vfsops.c @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * @(#)mfs_vfsops.c 8.11 (Berkeley) 6/19/95 - * $Id: mfs_vfsops.c,v 1.66 1999/07/20 09:47:55 phk Exp $ + * $Id: mfs_vfsops.c,v 1.67 1999/08/24 18:35:33 phk Exp $ */ @@ -335,8 +335,7 @@ mfs_mount(mp, path, data, ndp, p) dev->si_bsize_phys = DEV_BSIZE; dev->si_bsize_best = BLKDEV_IOSIZE; dev->si_bsize_max = MAXBSIZE; - if (checkalias(devvp, makeudev(253, mfs_minor++), (struct mount *)0)) - panic("mfs_mount: dup dev"); + addaliasu(devvp, makeudev(253, mfs_minor++)); devvp->v_data = mfsp; mfsp->mfs_baseoff = args.base; mfsp->mfs_size = args.size; diff --git a/sys/ufs/ufs/ufs_vnops.c b/sys/ufs/ufs/ufs_vnops.c index 77c37e1..e474bda 100644 --- a/sys/ufs/ufs/ufs_vnops.c +++ b/sys/ufs/ufs/ufs_vnops.c @@ -36,7 +36,7 @@ * SUCH DAMAGE. * * @(#)ufs_vnops.c 8.27 (Berkeley) 5/27/95 - * $Id: ufs_vnops.c,v 1.120 1999/08/22 00:15:16 jdp Exp $ + * $Id: ufs_vnops.c,v 1.121 1999/08/23 20:35:21 bde Exp $ */ #include "opt_quota.h" @@ -2035,24 +2035,7 @@ ufs_vinit(mntp, specops, fifoops, vpp) case VCHR: case VBLK: vp->v_op = specops; - nvp = checkalias(vp, ip->i_rdev, mntp); - if (nvp) { - /* - * Discard unneeded vnode, but save its inode. - * Note that the lock is carried over in the inode - * to the replacement vnode. - */ - nvp->v_data = vp->v_data; - vp->v_data = NULL; - vp->v_op = spec_vnodeop_p; - vrele(vp); - vgone(vp); - /* - * Reinitialize aliased inode. - */ - vp = nvp; - ip->i_vnode = vp; - } + addaliasu(vp, ip->i_rdev); break; case VFIFO: vp->v_op = fifoops; |