summaryrefslogtreecommitdiffstats
path: root/sys/fs/ntfs
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/ntfs
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/ntfs')
-rw-r--r--sys/fs/ntfs/ntfs_vfsops.c20
-rw-r--r--sys/fs/ntfs/ntfs_vnops.c22
2 files changed, 22 insertions, 20 deletions
diff --git a/sys/fs/ntfs/ntfs_vfsops.c b/sys/fs/ntfs/ntfs_vfsops.c
index 1f46d01..30c7a59 100644
--- a/sys/fs/ntfs/ntfs_vfsops.c
+++ b/sys/fs/ntfs/ntfs_vfsops.c
@@ -80,7 +80,6 @@ static vfs_mount_t ntfs_mount;
static vfs_root_t ntfs_root;
static vfs_statfs_t ntfs_statfs;
static vfs_unmount_t ntfs_unmount;
-static vfs_vptofh_t ntfs_vptofh;
static b_strategy_t ntfs_bufstrategy;
@@ -622,24 +621,6 @@ ntfs_fhtovp(
return (0);
}
-static int
-ntfs_vptofh(
- struct vnode *vp,
- struct fid *fhp)
-{
- register struct ntnode *ntp;
- register struct ntfid *ntfhp;
-
- ddprintf(("ntfs_fhtovp(): %p\n", vp));
-
- ntp = VTONT(vp);
- ntfhp = (struct ntfid *)fhp;
- ntfhp->ntfid_len = sizeof(struct ntfid);
- ntfhp->ntfid_ino = ntp->i_number;
- /* ntfhp->ntfid_gen = ntp->i_gen; */
- return (0);
-}
-
int
ntfs_vgetex(
struct mount *mp,
@@ -787,7 +768,6 @@ static struct vfsops ntfs_vfsops = {
.vfs_uninit = ntfs_uninit,
.vfs_unmount = ntfs_unmount,
.vfs_vget = ntfs_vget,
- .vfs_vptofh = ntfs_vptofh,
};
VFS_SET(ntfs_vfsops, ntfs, 0);
MODULE_VERSION(ntfs, 1);
diff --git a/sys/fs/ntfs/ntfs_vnops.c b/sys/fs/ntfs/ntfs_vnops.c
index 0b90b60..bc30044 100644
--- a/sys/fs/ntfs/ntfs_vnops.c
+++ b/sys/fs/ntfs/ntfs_vnops.c
@@ -80,6 +80,7 @@ static vop_readdir_t ntfs_readdir;
static vop_cachedlookup_t ntfs_lookup;
static vop_fsync_t ntfs_fsync;
static vop_pathconf_t ntfs_pathconf;
+static vop_vptofh_t ntfs_vptofh;
int ntfs_prtactive = 1; /* 1 => print out reclaim of active vnodes */
@@ -731,6 +732,26 @@ ntfs_pathconf(ap)
/* NOTREACHED */
}
+int
+ntfs_vptofh(ap)
+ struct vop_vptofh_args /* {
+ struct vnode *a_vp;
+ struct fid *a_fhp;
+ } */ *ap;
+{
+ register struct ntnode *ntp;
+ register struct ntfid *ntfhp;
+
+ ddprintf(("ntfs_fhtovp(): %p\n", ap->a_vp));
+
+ ntp = VTONT(ap->a_vp);
+ ntfhp = (struct ntfid *)ap->a_fhp;
+ ntfhp->ntfid_len = sizeof(struct ntfid);
+ ntfhp->ntfid_ino = ntp->i_number;
+ /* ntfhp->ntfid_gen = ntp->i_gen; */
+ return (0);
+}
+
/*
* Global vfs data structures
*/
@@ -752,4 +773,5 @@ struct vop_vector ntfs_vnodeops = {
.vop_reclaim = ntfs_reclaim,
.vop_strategy = ntfs_strategy,
.vop_write = ntfs_write,
+ .vop_vptofh = ntfs_vptofh,
};
OpenPOWER on IntegriCloud