diff options
author | phk <phk@FreeBSD.org> | 2005-03-15 20:00:03 +0000 |
---|---|---|
committer | phk <phk@FreeBSD.org> | 2005-03-15 20:00:03 +0000 |
commit | d043926750bb71ad425d59da99871a7e3dc660ff (patch) | |
tree | 0df7ee974522d53324dfa9c6197c29fa4c9ee7c8 /sys/fs | |
parent | 9251389b0e2e8cb1b090c6e3a47fc1619a1aef4c (diff) | |
download | FreeBSD-src-d043926750bb71ad425d59da99871a7e3dc660ff.zip FreeBSD-src-d043926750bb71ad425d59da99871a7e3dc660ff.tar.gz |
Improve the vfs_hash() API: vput() the unneeded vnode centrally to
avoid replicating the vput in all the filesystems.
Diffstat (limited to 'sys/fs')
-rw-r--r-- | sys/fs/cd9660/cd9660_vfsops.c | 4 | ||||
-rw-r--r-- | sys/fs/hpfs/hpfs_vfsops.c | 4 | ||||
-rw-r--r-- | sys/fs/msdosfs/msdosfs_denode.c | 2 | ||||
-rw-r--r-- | sys/fs/udf/udf_vfsops.c | 4 |
4 files changed, 3 insertions, 11 deletions
diff --git a/sys/fs/cd9660/cd9660_vfsops.c b/sys/fs/cd9660/cd9660_vfsops.c index 169df65..2e2f776 100644 --- a/sys/fs/cd9660/cd9660_vfsops.c +++ b/sys/fs/cd9660/cd9660_vfsops.c @@ -681,10 +681,8 @@ cd9660_vget_internal(mp, ino, flags, vpp, relocated, isodir) ip->i_number = ino; error = vfs_hash_insert(vp, ino, flags, curthread, vpp); - if (error || *vpp != NULL) { - vput(vp); + if (error || *vpp != NULL) return (error); - } if (isodir == 0) { int lbn, off; diff --git a/sys/fs/hpfs/hpfs_vfsops.c b/sys/fs/hpfs/hpfs_vfsops.c index c14fa4b..d4bd57f 100644 --- a/sys/fs/hpfs/hpfs_vfsops.c +++ b/sys/fs/hpfs/hpfs_vfsops.c @@ -514,10 +514,8 @@ hpfs_vget( hp->h_devvp = hpmp->hpm_devvp; error = vfs_hash_insert(vp, ino, flags, curthread, vpp); - if (error || *vpp != NULL) { - vput(vp); + if (error || *vpp != NULL) return (error); - } VREF(hp->h_devvp); diff --git a/sys/fs/msdosfs/msdosfs_denode.c b/sys/fs/msdosfs/msdosfs_denode.c index d582a36..043e8e6 100644 --- a/sys/fs/msdosfs/msdosfs_denode.c +++ b/sys/fs/msdosfs/msdosfs_denode.c @@ -162,13 +162,11 @@ deget(pmp, dirclust, diroffset, depp) error = vfs_hash_insert(nvp, hash, 0, curthread, &xvp); if (error) { - vput(nvp); *depp = NULL; return (error); } if (xvp != NULL) { /* XXX: Not sure this is right */ - vput(nvp); nvp = xvp; ldep->de_vnode = nvp; } diff --git a/sys/fs/udf/udf_vfsops.c b/sys/fs/udf/udf_vfsops.c index 60eaa7b..0fa8a69 100644 --- a/sys/fs/udf/udf_vfsops.c +++ b/sys/fs/udf/udf_vfsops.c @@ -604,10 +604,8 @@ udf_vget(struct mount *mp, ino_t ino, int flags, struct vnode **vpp) vp->v_data = unode; error = vfs_hash_insert(vp, ino, flags, curthread, vpp); - if (error || *vpp != NULL) { - vput(vp); + if (error || *vpp != NULL) return (error); - } /* * Copy in the file entry. Per the spec, the size can only be 1 block. |