summaryrefslogtreecommitdiffstats
path: root/sys/fs
diff options
context:
space:
mode:
authorphk <phk@FreeBSD.org>2005-03-15 20:00:03 +0000
committerphk <phk@FreeBSD.org>2005-03-15 20:00:03 +0000
commitd043926750bb71ad425d59da99871a7e3dc660ff (patch)
tree0df7ee974522d53324dfa9c6197c29fa4c9ee7c8 /sys/fs
parent9251389b0e2e8cb1b090c6e3a47fc1619a1aef4c (diff)
downloadFreeBSD-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.c4
-rw-r--r--sys/fs/hpfs/hpfs_vfsops.c4
-rw-r--r--sys/fs/msdosfs/msdosfs_denode.c2
-rw-r--r--sys/fs/udf/udf_vfsops.c4
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.
OpenPOWER on IntegriCloud