diff options
author | Pawel Jakub Dawidek <pjd@FreeBSD.org> | 2007-02-15 22:08:35 +0000 |
---|---|---|
committer | Pawel Jakub Dawidek <pjd@FreeBSD.org> | 2007-02-15 22:08:35 +0000 |
commit | 10bcafe9abdb866e20e561bf567f15c0a06a0114 (patch) | |
tree | d0649ac0ff4a69d709b0c801322ed78174e44d1c /sys/gnu/fs/xfs | |
parent | 233fcaed71e100aab87e94b9f579d3c23422d4db (diff) | |
download | src-10bcafe9abdb866e20e561bf567f15c0a06a0114.tar.gz src-10bcafe9abdb866e20e561bf567f15c0a06a0114.zip |
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
Notes
Notes:
svn path=/head/; revision=166774
Diffstat (limited to 'sys/gnu/fs/xfs')
-rw-r--r-- | sys/gnu/fs/xfs/FreeBSD/xfs_mountops.c | 11 | ||||
-rw-r--r-- | sys/gnu/fs/xfs/FreeBSD/xfs_vnops.c | 16 |
2 files changed, 16 insertions, 11 deletions
diff --git a/sys/gnu/fs/xfs/FreeBSD/xfs_mountops.c b/sys/gnu/fs/xfs/FreeBSD/xfs_mountops.c index da3650b3993b..683024a6461f 100644 --- a/sys/gnu/fs/xfs/FreeBSD/xfs_mountops.c +++ b/sys/gnu/fs/xfs/FreeBSD/xfs_mountops.c @@ -81,7 +81,6 @@ static vfs_statfs_t _xfs_statfs; static vfs_sync_t _xfs_sync; static vfs_vget_t _xfs_vget; static vfs_fhtovp_t _xfs_fhtovp; -static vfs_vptofh_t _xfs_vptofh; static vfs_init_t _xfs_init; static vfs_uninit_t _xfs_uninit; static vfs_extattrctl_t _xfs_extattrctl; @@ -383,15 +382,6 @@ _xfs_fhtovp(mp, fidp, vpp) } static int -_xfs_vptofh(vp, fhp) - struct vnode *vp; - struct fid *fhp; -{ - printf("xfs_vptofh"); - return ENOSYS; -} - -static int _xfs_extattrctl(struct mount *mp, int cm, struct vnode *filename_v, int attrnamespace, const char *attrname, @@ -429,7 +419,6 @@ static struct vfsops xfs_fsops = { .vfs_sync = _xfs_sync, .vfs_vget = _xfs_vget, .vfs_fhtovp = _xfs_fhtovp, - .vfs_vptofh = _xfs_vptofh, .vfs_init = _xfs_init, .vfs_uninit = _xfs_uninit, .vfs_extattrctl = _xfs_extattrctl, diff --git a/sys/gnu/fs/xfs/FreeBSD/xfs_vnops.c b/sys/gnu/fs/xfs/FreeBSD/xfs_vnops.c index be95936fbfc4..c894095bdd79 100644 --- a/sys/gnu/fs/xfs/FreeBSD/xfs_vnops.c +++ b/sys/gnu/fs/xfs/FreeBSD/xfs_vnops.c @@ -115,6 +115,7 @@ static vop_setextattr_t _xfs_setextattr; static vop_strategy_t _xfs_strategy; static vop_symlink_t _xfs_symlink; static vop_write_t _xfs_write; +static vop_vptofh_t _xfs_vptofh; struct vop_vector xfs_vnops = { .vop_default = &default_vnodeops, @@ -148,6 +149,7 @@ struct vop_vector xfs_vnops = { .vop_strategy = _xfs_strategy, .vop_symlink = _xfs_symlink, .vop_write = _xfs_write, + .vop_vptofh = _xfs_vptofh, }; /* @@ -171,6 +173,7 @@ struct vop_vector xfs_fifoops = { .vop_reclaim = _xfs_reclaim, .vop_setattr = _xfs_setattr, .vop_write = _xfsfifo_write, + .vop_vptofh = _xfs_vptofh, }; static int @@ -1681,3 +1684,16 @@ vop_deleteextattr { ap->a_cred, error); return (error); } + +static int +_xfs_vptofh(struct vop_vptofh_args *ap) +/* +vop_vptofh { + IN struct vnode *a_vp; + IN struct fid *a_fhp; +}; +*/ +{ + printf("xfs_vptofh"); + return ENOSYS; +} |