diff options
author | phk <phk@FreeBSD.org> | 2005-03-15 21:09:52 +0000 |
---|---|---|
committer | phk <phk@FreeBSD.org> | 2005-03-15 21:09:52 +0000 |
commit | 909be0f0c287afe1ea5f5b60676aa7a297e7516a (patch) | |
tree | 2cf734e05ba13b41fa30fb743506bb41529a58e3 /sys/fs/udf | |
parent | c3c76f8185fd7f9995646dc6cb44a1777d80eabb (diff) | |
download | FreeBSD-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.h | 2 | ||||
-rw-r--r-- | sys/fs/udf/udf_vfsops.c | 3 | ||||
-rw-r--r-- | sys/fs/udf/udf_vnops.c | 7 |
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); |