diff options
-rw-r--r-- | sys/fs/cd9660/cd9660_vfsops.c | 15 | ||||
-rw-r--r-- | sys/fs/devfs/devfs_vfsops.c | 15 | ||||
-rw-r--r-- | sys/fs/msdosfs/msdosfs_vfsops.c | 17 | ||||
-rw-r--r-- | sys/isofs/cd9660/cd9660_vfsops.c | 15 | ||||
-rw-r--r-- | sys/nfsclient/nfs.h | 4 | ||||
-rw-r--r-- | sys/nfsclient/nfs_vfsops.c | 13 | ||||
-rw-r--r-- | sys/sys/mount.h | 83 | ||||
-rw-r--r-- | sys/ufs/ffs/ffs_extern.h | 15 | ||||
-rw-r--r-- | sys/ufs/ffs/ffs_vfsops.c | 4 | ||||
-rw-r--r-- | sys/ufs/ufs/quota.h | 2 | ||||
-rw-r--r-- | sys/ufs/ufs/ufs_extern.h | 4 | ||||
-rw-r--r-- | sys/ufs/ufs/ufs_ihash.c | 1 |
12 files changed, 93 insertions, 95 deletions
diff --git a/sys/fs/cd9660/cd9660_vfsops.c b/sys/fs/cd9660/cd9660_vfsops.c index 980612e..2126238 100644 --- a/sys/fs/cd9660/cd9660_vfsops.c +++ b/sys/fs/cd9660/cd9660_vfsops.c @@ -64,14 +64,13 @@ MALLOC_DEFINE(M_ISOFSMNT, "ISOFS mount", "ISOFS mount structure"); MALLOC_DEFINE(M_ISOFSNODE, "ISOFS node", "ISOFS vnode private part"); -static int cd9660_mount(struct mount *, - char *, caddr_t, struct nameidata *, struct thread *); -static int cd9660_unmount(struct mount *, int, struct thread *); -static int cd9660_root(struct mount *, struct vnode **); -static int cd9660_statfs(struct mount *, struct statfs *, struct thread *); -static int cd9660_vget(struct mount *, ino_t, int, struct vnode **); -static int cd9660_fhtovp(struct mount *, struct fid *, struct vnode **); -static int cd9660_vptofh(struct vnode *, struct fid *); +static vfs_mount_t cd9660_mount; +static vfs_unmount_t cd9660_unmount; +static vfs_root_t cd9660_root; +static vfs_statfs_t cd9660_statfs; +static vfs_vget_t cd9660_vget; +static vfs_fhtovp_t cd9660_fhtovp; +static vfs_vptofh_t cd9660_vptofh; static struct vfsops cd9660_vfsops = { cd9660_mount, diff --git a/sys/fs/devfs/devfs_vfsops.c b/sys/fs/devfs/devfs_vfsops.c index 319a0b7..9b2e174 100644 --- a/sys/fs/devfs/devfs_vfsops.c +++ b/sys/fs/devfs/devfs_vfsops.c @@ -52,19 +52,16 @@ MALLOC_DEFINE(M_DEVFS, "DEVFS", "DEVFS data"); -static int devfs_mount(struct mount *mp, struct nameidata *ndp, - struct thread *td); -static int devfs_unmount(struct mount *mp, int mntflags, - struct thread *td); -static int devfs_root(struct mount *mp, struct vnode **vpp); -static int devfs_statfs(struct mount *mp, struct statfs *sbp, - struct thread *td); +static vfs_nmount_t devfs_nmount; +static vfs_unmount_t devfs_unmount; +static vfs_root_t devfs_root; +static vfs_statfs_t devfs_statfs; /* * Mount the filesystem */ static int -devfs_mount(mp, ndp, td) +devfs_nmount(mp, ndp, td) struct mount *mp; struct nameidata *ndp; struct thread *td; @@ -201,7 +198,7 @@ static struct vfsops devfs_vfsops = { vfs_stdinit, vfs_stduninit, vfs_stdextattrctl, - devfs_mount, + devfs_nmount, }; VFS_SET(devfs_vfsops, devfs, VFCF_SYNTHETIC); diff --git a/sys/fs/msdosfs/msdosfs_vfsops.c b/sys/fs/msdosfs/msdosfs_vfsops.c index 0ad34a0..f820b2a 100644 --- a/sys/fs/msdosfs/msdosfs_vfsops.c +++ b/sys/fs/msdosfs/msdosfs_vfsops.c @@ -89,16 +89,13 @@ static MALLOC_DEFINE(M_MSDOSFSFAT, "MSDOSFS FAT", "MSDOSFS file allocation table static int update_mp(struct mount *mp, struct msdosfs_args *argp); static int mountmsdosfs(struct vnode *devvp, struct mount *mp, struct thread *td, struct msdosfs_args *argp); -static int msdosfs_fhtovp(struct mount *, struct fid *, struct vnode **); -static int msdosfs_mount(struct mount *, char *, caddr_t, - struct nameidata *, struct thread *); -static int msdosfs_root(struct mount *, struct vnode **); -static int msdosfs_statfs(struct mount *, struct statfs *, - struct thread *); -static int msdosfs_sync(struct mount *, int, struct ucred *, - struct thread *); -static int msdosfs_unmount(struct mount *, int, struct thread *); -static int msdosfs_vptofh(struct vnode *, struct fid *); +static vfs_fhtovp_t msdosfs_fhtovp; +static vfs_mount_t msdosfs_mount; +static vfs_root_t msdosfs_root; +static vfs_statfs_t msdosfs_statfs; +static vfs_sync_t msdosfs_sync; +static vfs_unmount_t msdosfs_unmount; +static vfs_vptofh_t msdosfs_vptofh; static int update_mp(mp, argp) diff --git a/sys/isofs/cd9660/cd9660_vfsops.c b/sys/isofs/cd9660/cd9660_vfsops.c index 980612e..2126238 100644 --- a/sys/isofs/cd9660/cd9660_vfsops.c +++ b/sys/isofs/cd9660/cd9660_vfsops.c @@ -64,14 +64,13 @@ MALLOC_DEFINE(M_ISOFSMNT, "ISOFS mount", "ISOFS mount structure"); MALLOC_DEFINE(M_ISOFSNODE, "ISOFS node", "ISOFS vnode private part"); -static int cd9660_mount(struct mount *, - char *, caddr_t, struct nameidata *, struct thread *); -static int cd9660_unmount(struct mount *, int, struct thread *); -static int cd9660_root(struct mount *, struct vnode **); -static int cd9660_statfs(struct mount *, struct statfs *, struct thread *); -static int cd9660_vget(struct mount *, ino_t, int, struct vnode **); -static int cd9660_fhtovp(struct mount *, struct fid *, struct vnode **); -static int cd9660_vptofh(struct vnode *, struct fid *); +static vfs_mount_t cd9660_mount; +static vfs_unmount_t cd9660_unmount; +static vfs_root_t cd9660_root; +static vfs_statfs_t cd9660_statfs; +static vfs_vget_t cd9660_vget; +static vfs_fhtovp_t cd9660_fhtovp; +static vfs_vptofh_t cd9660_vptofh; static struct vfsops cd9660_vfsops = { cd9660_mount, diff --git a/sys/nfsclient/nfs.h b/sys/nfsclient/nfs.h index 1be8608..686dd7c 100644 --- a/sys/nfsclient/nfs.h +++ b/sys/nfsclient/nfs.h @@ -248,8 +248,8 @@ extern int nfs_debug; #endif -int nfs_init(struct vfsconf *vfsp); -int nfs_uninit(struct vfsconf *vfsp); +vfs_init_t nfs_init; +vfs_uninit_t nfs_uninit; int nfs_mountroot(struct mount *mp, struct thread *td); int nfs_send(struct socket *, struct sockaddr *, struct mbuf *, struct nfsreq *); diff --git a/sys/nfsclient/nfs_vfsops.c b/sys/nfsclient/nfs_vfsops.c index 4ac930e..4c7e599 100644 --- a/sys/nfsclient/nfs_vfsops.c +++ b/sys/nfsclient/nfs_vfsops.c @@ -94,14 +94,11 @@ static void nfs_decode_args(struct nfsmount *nmp, struct nfs_args *argp); static int mountnfs(struct nfs_args *, struct mount *, struct sockaddr *, char *, char *, struct vnode **, struct ucred *cred); -static int nfs_mount(struct mount *mp, char *path, caddr_t data, - struct nameidata *ndp, struct thread *td); -static int nfs_unmount(struct mount *mp, int mntflags, struct thread *td); -static int nfs_root(struct mount *mp, struct vnode **vpp); -static int nfs_statfs(struct mount *mp, struct statfs *sbp, - struct thread *td); -static int nfs_sync(struct mount *mp, int waitfor, struct ucred *cred, - struct thread *td); +static vfs_mount_t nfs_mount; +static vfs_unmount_t nfs_unmount; +static vfs_root_t nfs_root; +static vfs_statfs_t nfs_statfs; +static vfs_sync_t nfs_sync; /* * nfs vfs operations. diff --git a/sys/sys/mount.h b/sys/sys/mount.h index 30e7092..52b9855 100644 --- a/sys/sys/mount.h +++ b/sys/sys/mount.h @@ -376,34 +376,48 @@ struct mbuf; struct mount_args; #endif -struct vfsops { - int (*vfs_mount)(struct mount *mp, char *path, caddr_t data, - struct nameidata *ndp, struct thread *td); - int (*vfs_start)(struct mount *mp, int flags, struct thread *td); - int (*vfs_unmount)(struct mount *mp, int mntflags, - struct thread *td); - int (*vfs_root)(struct mount *mp, struct vnode **vpp); - int (*vfs_quotactl)(struct mount *mp, int cmds, uid_t uid, +typedef int vfs_mount_t(struct mount *mp, char *path, caddr_t data, + struct nameidata *ndp, struct thread *td); +typedef int vfs_start_t(struct mount *mp, int flags, struct thread *td); +typedef int vfs_unmount_t(struct mount *mp, int mntflags, struct thread *td); +typedef int vfs_root_t(struct mount *mp, struct vnode **vpp); +typedef int vfs_quotactl_t(struct mount *mp, int cmds, uid_t uid, caddr_t arg, struct thread *td); - int (*vfs_statfs)(struct mount *mp, struct statfs *sbp, +typedef int vfs_statfs_t(struct mount *mp, struct statfs *sbp, struct thread *td); - int (*vfs_sync)(struct mount *mp, int waitfor, struct ucred *cred, +typedef int vfs_sync_t(struct mount *mp, int waitfor, struct ucred *cred, struct thread *td); - int (*vfs_vget)(struct mount *mp, ino_t ino, int flags, +typedef int vfs_vget_t(struct mount *mp, ino_t ino, int flags, struct vnode **vpp); - int (*vfs_fhtovp)(struct mount *mp, struct fid *fhp, - struct vnode **vpp); - int (*vfs_checkexp)(struct mount *mp, struct sockaddr *nam, +typedef int vfs_fhtovp_t(struct mount *mp, struct fid *fhp, struct vnode **vpp); +typedef int vfs_checkexp_t(struct mount *mp, struct sockaddr *nam, int *extflagsp, struct ucred **credanonp); - int (*vfs_vptofh)(struct vnode *vp, struct fid *fhp); - int (*vfs_init)(struct vfsconf *); - int (*vfs_uninit)(struct vfsconf *); - int (*vfs_extattrctl)(struct mount *mp, int cmd, +typedef int vfs_vptofh_t(struct vnode *vp, struct fid *fhp); +typedef int vfs_init_t(struct vfsconf *); +typedef int vfs_uninit_t(struct vfsconf *); +typedef int vfs_extattrctl_t(struct mount *mp, int cmd, struct vnode *filename_vp, int attrnamespace, const char *attrname, struct thread *td); - /* additions below are not binary compatible with 5.0 and below */ - int (*vfs_nmount)(struct mount *mp, struct nameidata *ndp, +typedef int vfs_nmount_t(struct mount *mp, struct nameidata *ndp, struct thread *td); + +struct vfsops { + vfs_mount_t *vfs_mount; + vfs_start_t *vfs_start; + vfs_unmount_t *vfs_unmount; + vfs_root_t *vfs_root; + vfs_quotactl_t *vfs_quotactl; + vfs_statfs_t *vfs_statfs; + vfs_sync_t *vfs_sync; + vfs_vget_t *vfs_vget; + vfs_fhtovp_t *vfs_fhtovp; + vfs_checkexp_t *vfs_checkexp; + vfs_vptofh_t *vfs_vptofh; + vfs_init_t *vfs_init; + vfs_uninit_t *vfs_uninit; + vfs_extattrctl_t *vfs_extattrctl; + /* additions below are not binary compatible with 5.0 and below */ + vfs_nmount_t *vfs_nmount; }; #define VFS_NMOUNT(MP, NDP, P) (*(MP)->mnt_op->vfs_nmount)(MP, NDP, P) @@ -485,23 +499,18 @@ extern struct nfs_public nfs_pub; * kern/vfs_default.c, they should be used instead of making "dummy" * functions or casting entries in the VFS op table to "enopnotsupp()". */ -int vfs_stdstart(struct mount *mp, int flags, struct thread *td); -int vfs_stdroot(struct mount *mp, struct vnode **vpp); -int vfs_stdquotactl(struct mount *mp, int cmds, uid_t uid, - caddr_t arg, struct thread *td); -int vfs_stdstatfs(struct mount *mp, struct statfs *sbp, struct thread *td); -int vfs_stdsync(struct mount *mp, int waitfor, struct ucred *cred, - struct thread *td); -int vfs_stdvget(struct mount *mp, ino_t ino, int, struct vnode **vpp); -int vfs_stdfhtovp(struct mount *mp, struct fid *fhp, struct vnode **vpp); -int vfs_stdcheckexp(struct mount *mp, struct sockaddr *nam, - int *extflagsp, struct ucred **credanonp); -int vfs_stdvptofh(struct vnode *vp, struct fid *fhp); -int vfs_stdinit(struct vfsconf *); -int vfs_stduninit(struct vfsconf *); -int vfs_stdextattrctl(struct mount *mp, int cmd, - struct vnode *filename_vp, int attrnamespace, const char *attrname, - struct thread *td); +vfs_start_t vfs_stdstart; +vfs_root_t vfs_stdroot; +vfs_quotactl_t vfs_stdquotactl; +vfs_statfs_t vfs_stdstatfs; +vfs_sync_t vfs_stdsync; +vfs_vget_t vfs_stdvget; +vfs_fhtovp_t vfs_stdfhtovp; +vfs_checkexp_t vfs_stdcheckexp; +vfs_vptofh_t vfs_stdvptofh; +vfs_init_t vfs_stdinit; +vfs_uninit_t vfs_stduninit; +vfs_extattrctl_t vfs_stdextattrctl; /* XXX - these should be indirect functions!!! */ int softdep_process_worklist(struct mount *); diff --git a/sys/ufs/ffs/ffs_extern.h b/sys/ufs/ffs/ffs_extern.h index b65fe71..b16a09d 100644 --- a/sys/ufs/ffs/ffs_extern.h +++ b/sys/ufs/ffs/ffs_extern.h @@ -65,7 +65,7 @@ ufs2_daddr_t ffs_blkpref_ufs1(struct inode *, ufs_lbn_t, int, ufs1_daddr_t *); ufs2_daddr_t ffs_blkpref_ufs2(struct inode *, ufs_lbn_t, int, ufs2_daddr_t *); void ffs_clrblock(struct fs *, u_char *, ufs1_daddr_t); void ffs_clusteracct (struct fs *, struct cg *, ufs1_daddr_t, int); -int ffs_fhtovp(struct mount *, struct fid *, struct vnode **); +vfs_fhtovp_t ffs_fhtovp; int ffs_flushfiles(struct mount *, int, struct thread *); void ffs_fragacct(struct fs *, int, int32_t [], int); int ffs_freefile(struct fs *, struct vnode *, ino_t, int ); @@ -75,8 +75,7 @@ void ffs_load_inode(struct buf *, struct inode *, struct malloc_type *, int ffs_mountfs(struct vnode *, struct mount *, struct thread *, struct malloc_type *); int ffs_mountroot(void); -int ffs_mount(struct mount *, char *, caddr_t, struct nameidata *, - struct thread *); +vfs_mount_t ffs_mount; int ffs_reallocblks(struct vop_reallocblks_args *); int ffs_realloccg(struct inode *, ufs2_daddr_t, ufs2_daddr_t, ufs2_daddr_t, int, int, struct ucred *, struct buf **); @@ -86,16 +85,16 @@ void ffs_snapremove(struct vnode *vp); int ffs_snapshot(struct mount *mp, char *snapfile); void ffs_snapshot_mount(struct mount *mp); void ffs_snapshot_unmount(struct mount *mp); -int ffs_statfs(struct mount *, struct statfs *, struct thread *); -int ffs_sync(struct mount *, int, struct ucred *, struct thread *); +vfs_statfs_t ffs_statfs; +vfs_sync_t ffs_sync; int ffs_truncate(struct vnode *, off_t, int, struct ucred *, struct thread *); -int ffs_unmount(struct mount *, int, struct thread *); +vfs_unmount_t ffs_unmount; int ffs_update(struct vnode *, int); int ffs_valloc(struct vnode *, int, struct ucred *, struct vnode **); int ffs_vfree(struct vnode *, ino_t, int); -int ffs_vget(struct mount *, ino_t, int, struct vnode **); -int ffs_vptofh(struct vnode *, struct fid *); +vfs_vget_t ffs_vget; +vfs_vptofh_t ffs_vptofh; extern vop_t **ffs_vnodeop_p; extern vop_t **ffs_specop_p; diff --git a/sys/ufs/ffs/ffs_vfsops.c b/sys/ufs/ffs/ffs_vfsops.c index e5c62b0..18fa4b8 100644 --- a/sys/ufs/ffs/ffs_vfsops.c +++ b/sys/ufs/ffs/ffs_vfsops.c @@ -72,8 +72,8 @@ static int ffs_sbupdate(struct ufsmount *, int); static void ffs_oldfscompat_read(struct fs *, struct ufsmount *, ufs2_daddr_t); static void ffs_oldfscompat_write(struct fs *, struct ufsmount *); -static int ffs_init(struct vfsconf *); -static int ffs_uninit(struct vfsconf *); +static vfs_init_t ffs_init; +static vfs_uninit_t ffs_uninit; static struct vfsops ufs_vfsops = { ffs_mount, diff --git a/sys/ufs/ufs/quota.h b/sys/ufs/ufs/quota.h index df5d1f37..49b2629 100644 --- a/sys/ufs/ufs/quota.h +++ b/sys/ufs/ufs/quota.h @@ -190,7 +190,7 @@ int quotaoff(struct thread *td, struct mount *, int); int quotaon(struct thread *td, struct mount *, int, caddr_t); int setquota(struct mount *, u_long, int, caddr_t); int setuse(struct mount *, u_long, int, caddr_t); -int ufs_quotactl(struct mount *, int, uid_t, caddr_t, struct thread *td); +vfs_quotactl_t ufs_quotactl; #else /* !_KERNEL */ diff --git a/sys/ufs/ufs/ufs_extern.h b/sys/ufs/ufs/ufs_extern.h index d4e333c..cfd2733 100644 --- a/sys/ufs/ufs/ufs_extern.h +++ b/sys/ufs/ufs/ufs_extern.h @@ -90,8 +90,8 @@ int ufs_lookup(struct vop_cachedlookup_args *); int ufs_readdir(struct vop_readdir_args *); int ufs_reclaim(struct vop_reclaim_args *); void ffs_snapgone(struct inode *); -int ufs_root(struct mount *, struct vnode **); -int ufs_start(struct mount *, int, struct thread *); +vfs_root_t ufs_root; +vfs_start_t ufs_start; int ufs_uninit(struct vfsconf *); int ufs_vinit(struct mount *, vop_t **, vop_t **, struct vnode **); diff --git a/sys/ufs/ufs/ufs_ihash.c b/sys/ufs/ufs/ufs_ihash.c index 75e0093..b6a054d 100644 --- a/sys/ufs/ufs/ufs_ihash.c +++ b/sys/ufs/ufs/ufs_ihash.c @@ -42,6 +42,7 @@ #include <sys/malloc.h> #include <sys/proc.h> #include <sys/mutex.h> +#include <sys/mount.h> #include <ufs/ufs/quota.h> #include <ufs/ufs/inode.h> |