summaryrefslogtreecommitdiffstats
path: root/sys/fs/udf
diff options
context:
space:
mode:
authorphk <phk@FreeBSD.org>2005-03-15 21:09:52 +0000
committerphk <phk@FreeBSD.org>2005-03-15 21:09:52 +0000
commit909be0f0c287afe1ea5f5b60676aa7a297e7516a (patch)
tree2cf734e05ba13b41fa30fb743506bb41529a58e3 /sys/fs/udf
parentc3c76f8185fd7f9995646dc6cb44a1777d80eabb (diff)
downloadFreeBSD-src-909be0f0c287afe1ea5f5b60676aa7a297e7516a.zip
FreeBSD-src-909be0f0c287afe1ea5f5b60676aa7a297e7516a.tar.gz
Don't hold a reference to the disk vnode for each inode.
Eliminate cdev and vnode pointer to the disk from the inodes, the mount holds everything we need.
Diffstat (limited to 'sys/fs/udf')
-rw-r--r--sys/fs/udf/udf.h2
-rw-r--r--sys/fs/udf/udf_vfsops.c3
-rw-r--r--sys/fs/udf/udf_vnops.c7
3 files changed, 1 insertions, 11 deletions
diff --git a/sys/fs/udf/udf.h b/sys/fs/udf/udf.h
index 1437e3b..348c2c9 100644
--- a/sys/fs/udf/udf.h
+++ b/sys/fs/udf/udf.h
@@ -31,9 +31,7 @@
struct udf_node {
LIST_ENTRY(udf_node) le;
struct vnode *i_vnode;
- struct vnode *i_devvp;
struct udf_mnt *udfmp;
- struct cdev *i_dev;
ino_t hash_id;
long diroff;
struct file_entry *fentry;
diff --git a/sys/fs/udf/udf_vfsops.c b/sys/fs/udf/udf_vfsops.c
index 0fa8a69..5297fc8 100644
--- a/sys/fs/udf/udf_vfsops.c
+++ b/sys/fs/udf/udf_vfsops.c
@@ -598,8 +598,6 @@ udf_vget(struct mount *mp, ino_t ino, int flags, struct vnode **vpp)
unode->i_vnode = vp;
unode->hash_id = ino;
- unode->i_devvp = udfmp->im_devvp;
- unode->i_dev = udfmp->im_dev;
unode->udfmp = udfmp;
vp->v_data = unode;
@@ -639,7 +637,6 @@ udf_vget(struct mount *mp, ino_t ino, int flags, struct vnode **vpp)
return (ENOMEM);
}
- VREF(udfmp->im_devvp);
bcopy(bp->b_data, unode->fentry, size);
brelse(bp);
diff --git a/sys/fs/udf/udf_vnops.c b/sys/fs/udf/udf_vnops.c
index 7a99b1e..af66e65 100644
--- a/sys/fs/udf/udf_vnops.c
+++ b/sys/fs/udf/udf_vnops.c
@@ -252,7 +252,6 @@ udf_getattr(struct vop_getattr_args *a)
node = VTON(vp);
fentry = node->fentry;
- vap->va_fsid = dev2udev(node->i_dev);
vap->va_fileid = node->hash_id;
vap->va_mode = udf_permtomode(node);
vap->va_nlink = le16toh(fentry->link_cnt);
@@ -802,7 +801,7 @@ udf_bmap(struct vop_bmap_args *a)
node = VTON(a->a_vp);
if (a->a_bop != NULL)
- *a->a_bop = &node->i_devvp->v_bufobj;
+ *a->a_bop = &node->udfmp->im_devvp->v_bufobj;
if (a->a_bnp == NULL)
return (0);
if (a->a_runb)
@@ -968,10 +967,6 @@ udf_reclaim(struct vop_reclaim_args *a)
if (unode != NULL) {
vfs_hash_remove(vp);
- if (unode->i_devvp) {
- vrele(unode->i_devvp);
- unode->i_devvp = 0;
- }
if (unode->fentry != NULL)
FREE(unode->fentry, M_UDFFENTRY);
OpenPOWER on IntegriCloud