summaryrefslogtreecommitdiffstats
path: root/sys/fs/umapfs/umap_vnops.c
diff options
context:
space:
mode:
authorpjd <pjd@FreeBSD.org>2007-02-15 22:08:35 +0000
committerpjd <pjd@FreeBSD.org>2007-02-15 22:08:35 +0000
commitcb2d7c85a85791923bd76d6e730efe888d456b05 (patch)
treed0649ac0ff4a69d709b0c801322ed78174e44d1c /sys/fs/umapfs/umap_vnops.c
parent8442403943388cc79bc6f4b7d43bfe916ee194ef (diff)
downloadFreeBSD-src-cb2d7c85a85791923bd76d6e730efe888d456b05.zip
FreeBSD-src-cb2d7c85a85791923bd76d6e730efe888d456b05.tar.gz
Move vnode-to-file-handle translation from vfs_vptofh to vop_vptofh method.
This way we may support multiple structures in v_data vnode field within one file system without using black magic. Vnode-to-file-handle should be VOP in the first place, but was made VFS operation to keep interface as compatible as possible with SUN's VFS. BTW. Now Solaris also implements vnode-to-file-handle as VOP operation. VFS_VPTOFH() was left for API backward compatibility, but is marked for removal before 8.0-RELEASE. Approved by: mckusick Discussed with: many (on IRC) Tested with: ufs, msdosfs, cd9660, nullfs and zfs
Diffstat (limited to 'sys/fs/umapfs/umap_vnops.c')
-rw-r--r--sys/fs/umapfs/umap_vnops.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/sys/fs/umapfs/umap_vnops.c b/sys/fs/umapfs/umap_vnops.c
index 92a3bc4..eb78b98 100644
--- a/sys/fs/umapfs/umap_vnops.c
+++ b/sys/fs/umapfs/umap_vnops.c
@@ -62,6 +62,7 @@ static vop_print_t umap_print;
static vop_reclaim_t umap_reclaim;
static vop_rename_t umap_rename;
static vop_unlock_t umap_unlock;
+static vop_vptofh_t umap_vptofh;
/*
* This is the 10-Apr-92 bypass routine.
@@ -498,6 +499,19 @@ umap_rename(ap)
return error;
}
+static int
+umap_vptofh(ap)
+ struct vop_vptofh_args /* {
+ struct vnode *a_vp;
+ struct fid *a_fhp;
+ } */ *ap;
+{
+ struct vnode *lvp;
+
+ lvp = UMAPVPTOLOWERVP(ap->a_vp);
+ return (VOP_VPTOFH(lvp, ap->a_fhp));
+}
+
/*
* Global vfs data structures
*/
@@ -516,4 +530,5 @@ static struct vop_vector umap_vnodeops = {
.vop_reclaim = umap_reclaim,
.vop_rename = umap_rename,
.vop_unlock = umap_unlock,
+ .vop_vptofh = umap_vptofh,
};
OpenPOWER on IntegriCloud