diff options
author | trhodes <trhodes@FreeBSD.org> | 2007-06-01 17:06:46 +0000 |
---|---|---|
committer | trhodes <trhodes@FreeBSD.org> | 2007-06-01 17:06:46 +0000 |
commit | 4173ae41551893cb869a1b5b3e064cc1db1e2d84 (patch) | |
tree | ed57fb0e4c45b000483abe91e36e2d81b18ad7f8 /sys/fs | |
parent | 867d47ed4e58a3b1b4d55046b91d92699ba5ec18 (diff) | |
download | FreeBSD-src-4173ae41551893cb869a1b5b3e064cc1db1e2d84.zip FreeBSD-src-4173ae41551893cb869a1b5b3e064cc1db1e2d84.tar.gz |
Revert previous, part of NFS that I didn't know about.
Diffstat (limited to 'sys/fs')
-rw-r--r-- | sys/fs/msdosfs/msdosfs_vfsops.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/sys/fs/msdosfs/msdosfs_vfsops.c b/sys/fs/msdosfs/msdosfs_vfsops.c index 699c0ef..3b53b0a 100644 --- a/sys/fs/msdosfs/msdosfs_vfsops.c +++ b/sys/fs/msdosfs/msdosfs_vfsops.c @@ -106,6 +106,7 @@ struct iconv_functions *msdosfs_iconv = NULL; static int update_mp(struct mount *mp, struct thread *td); static int mountmsdosfs(struct vnode *devvp, struct mount *mp, struct thread *td); +static vfs_fhtovp_t msdosfs_fhtovp; static vfs_mount_t msdosfs_mount; static vfs_root_t msdosfs_root; static vfs_statfs_t msdosfs_statfs; @@ -911,7 +912,26 @@ loop: return (allerror); } +static int +msdosfs_fhtovp(struct mount *mp, struct fid *fhp, struct vnode **vpp) +{ + struct msdosfsmount *pmp = VFSTOMSDOSFS(mp); + struct defid *defhp = (struct defid *) fhp; + struct denode *dep; + int error; + + error = deget(pmp, defhp->defid_dirclust, defhp->defid_dirofs, &dep); + if (error) { + *vpp = NULLVP; + return (error); + } + *vpp = DETOV(dep); + vnode_create_vobject(*vpp, dep->de_FileSize, curthread); + return (0); +} + static struct vfsops msdosfs_vfsops = { + .vfs_fhtovp = msdosfs_fhtovp, .vfs_mount = msdosfs_mount, .vfs_cmount = msdosfs_cmount, .vfs_root = msdosfs_root, |