All unimplemented VFS ops now have entries in kern/vfs_default.c that return
reasonable defaults. This avoids confusing and ugly casting to eopnotsupp or making dummy functions. Bogus casting of filesystem sysctls to eopnotsupp() have been removed. This should make *_vfsops.c more readable and reduce bloat. Reviewed by: msmith, eivind Approved by: phk Tested by: Jeroen Ruigrok/Asmodai <asmodai@wxs.nl>
This commit is contained in:
parent
75f462f45d
commit
5a5fccc8e7
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=51068
@ -230,16 +230,6 @@ coda_mount(vfsp, path, data, ndp, p)
|
||||
return(error);
|
||||
}
|
||||
|
||||
int
|
||||
coda_start(vfsp, flags, p)
|
||||
struct mount *vfsp;
|
||||
int flags;
|
||||
struct proc *p;
|
||||
{
|
||||
ENTRY;
|
||||
return (0);
|
||||
}
|
||||
|
||||
int
|
||||
coda_unmount(vfsp, mntflags, p)
|
||||
struct mount *vfsp;
|
||||
@ -378,18 +368,6 @@ coda_root(vfsp, vpp)
|
||||
return(error);
|
||||
}
|
||||
|
||||
int
|
||||
coda_quotactl(vfsp, cmd, uid, arg, p)
|
||||
struct mount *vfsp;
|
||||
int cmd;
|
||||
uid_t uid;
|
||||
caddr_t arg;
|
||||
struct proc *p;
|
||||
{
|
||||
ENTRY;
|
||||
return (EOPNOTSUPP);
|
||||
}
|
||||
|
||||
/*
|
||||
* Get file system statistics.
|
||||
*/
|
||||
@ -444,16 +422,6 @@ coda_sync(vfsp, waitfor, cred, p)
|
||||
return(0);
|
||||
}
|
||||
|
||||
int
|
||||
coda_vget(vfsp, ino, vpp)
|
||||
struct mount *vfsp;
|
||||
ino_t ino;
|
||||
struct vnode **vpp;
|
||||
{
|
||||
ENTRY;
|
||||
return (EOPNOTSUPP);
|
||||
}
|
||||
|
||||
/*
|
||||
* fhtovp is now what vget used to be in 4.3-derived systems. For
|
||||
* some silly reason, vget is now keyed by a 32 bit ino_t, rather than
|
||||
@ -502,22 +470,6 @@ coda_fhtovp(vfsp, fhp, nam, vpp, exflagsp, creadanonp)
|
||||
return(error);
|
||||
}
|
||||
|
||||
int
|
||||
coda_vptofh(vnp, fidp)
|
||||
struct vnode *vnp;
|
||||
struct fid *fidp;
|
||||
{
|
||||
ENTRY;
|
||||
return (EOPNOTSUPP);
|
||||
}
|
||||
|
||||
int
|
||||
coda_init(struct vfsconf *vfsp)
|
||||
{
|
||||
ENTRY;
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* To allow for greater ease of use, some vnodes may be orphaned when
|
||||
* Venus dies. Certain operations should still be allowed to go
|
||||
@ -570,18 +522,16 @@ struct mount *devtomp(dev)
|
||||
|
||||
struct vfsops coda_vfsops = {
|
||||
coda_mount,
|
||||
coda_start,
|
||||
vfs_stdstart,
|
||||
coda_unmount,
|
||||
coda_root,
|
||||
coda_quotactl,
|
||||
vfs_stdquotactl,
|
||||
coda_nb_statfs,
|
||||
coda_sync,
|
||||
coda_vget,
|
||||
(int (*) (struct mount *, struct fid *, struct sockaddr *, struct vnode **,
|
||||
int *, struct ucred **))
|
||||
eopnotsupp,
|
||||
(int (*) (struct vnode *, struct fid *)) eopnotsupp,
|
||||
coda_init,
|
||||
vfs_stdvget,
|
||||
vfs_stdfhtovp,
|
||||
vfs_stdvptofh,
|
||||
vfs_stdinit
|
||||
};
|
||||
|
||||
VFS_SET(coda_vfsops, coda, VFCF_NETWORK);
|
||||
|
@ -64,14 +64,9 @@ MALLOC_DEFINE(M_ISOFSNODE, "ISOFS node", "ISOFS vnode private part");
|
||||
|
||||
static int cd9660_mount __P((struct mount *,
|
||||
char *, caddr_t, struct nameidata *, struct proc *));
|
||||
static int cd9660_start __P((struct mount *, int, struct proc *));
|
||||
static int cd9660_unmount __P((struct mount *, int, struct proc *));
|
||||
static int cd9660_root __P((struct mount *, struct vnode **));
|
||||
static int cd9660_quotactl __P((struct mount *, int, uid_t, caddr_t,
|
||||
struct proc *));
|
||||
static int cd9660_statfs __P((struct mount *, struct statfs *, struct proc *));
|
||||
static int cd9660_sync __P((struct mount *, int, struct ucred *,
|
||||
struct proc *));
|
||||
static int cd9660_vget __P((struct mount *, ino_t, struct vnode **));
|
||||
static int cd9660_fhtovp __P((struct mount *, struct fid *, struct sockaddr *,
|
||||
struct vnode **, int *, struct ucred **));
|
||||
@ -79,16 +74,16 @@ static int cd9660_vptofh __P((struct vnode *, struct fid *));
|
||||
|
||||
static struct vfsops cd9660_vfsops = {
|
||||
cd9660_mount,
|
||||
cd9660_start,
|
||||
vfs_stdstart,
|
||||
cd9660_unmount,
|
||||
cd9660_root,
|
||||
cd9660_quotactl,
|
||||
vfs_stdquotactl,
|
||||
cd9660_statfs,
|
||||
cd9660_sync,
|
||||
vfs_stdsync,
|
||||
cd9660_vget,
|
||||
cd9660_fhtovp,
|
||||
cd9660_vptofh,
|
||||
cd9660_init
|
||||
cd9660_init,
|
||||
};
|
||||
VFS_SET(cd9660_vfsops, cd9660, VFCF_READONLY);
|
||||
|
||||
@ -523,20 +518,6 @@ iso_mountfs(devvp, mp, p, argp)
|
||||
return error;
|
||||
}
|
||||
|
||||
/*
|
||||
* Make a filesystem operational.
|
||||
* Nothing to do at the moment.
|
||||
*/
|
||||
/* ARGSUSED */
|
||||
static int
|
||||
cd9660_start(mp, flags, p)
|
||||
struct mount *mp;
|
||||
int flags;
|
||||
struct proc *p;
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* unmount system call
|
||||
*/
|
||||
@ -592,22 +573,6 @@ cd9660_root(mp, vpp)
|
||||
imp->iso_ftype == ISO_FTYPE_RRIP, dp));
|
||||
}
|
||||
|
||||
/*
|
||||
* Do operations associated with quotas, not supported
|
||||
*/
|
||||
/* ARGSUSED */
|
||||
static int
|
||||
cd9660_quotactl(mp, cmd, uid, arg, p)
|
||||
struct mount *mp;
|
||||
int cmd;
|
||||
uid_t uid;
|
||||
caddr_t arg;
|
||||
struct proc *p;
|
||||
{
|
||||
|
||||
return (EOPNOTSUPP);
|
||||
}
|
||||
|
||||
/*
|
||||
* Get file system statistics.
|
||||
*/
|
||||
@ -636,17 +601,6 @@ cd9660_statfs(mp, sbp, p)
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* ARGSUSED */
|
||||
static int
|
||||
cd9660_sync(mp, waitfor, cred, p)
|
||||
struct mount *mp;
|
||||
int waitfor;
|
||||
struct ucred *cred;
|
||||
struct proc *p;
|
||||
{
|
||||
return (0);
|
||||
}
|
||||
|
||||
/*
|
||||
* File handle to vnode
|
||||
*
|
||||
|
@ -230,16 +230,6 @@ coda_mount(vfsp, path, data, ndp, p)
|
||||
return(error);
|
||||
}
|
||||
|
||||
int
|
||||
coda_start(vfsp, flags, p)
|
||||
struct mount *vfsp;
|
||||
int flags;
|
||||
struct proc *p;
|
||||
{
|
||||
ENTRY;
|
||||
return (0);
|
||||
}
|
||||
|
||||
int
|
||||
coda_unmount(vfsp, mntflags, p)
|
||||
struct mount *vfsp;
|
||||
@ -378,18 +368,6 @@ coda_root(vfsp, vpp)
|
||||
return(error);
|
||||
}
|
||||
|
||||
int
|
||||
coda_quotactl(vfsp, cmd, uid, arg, p)
|
||||
struct mount *vfsp;
|
||||
int cmd;
|
||||
uid_t uid;
|
||||
caddr_t arg;
|
||||
struct proc *p;
|
||||
{
|
||||
ENTRY;
|
||||
return (EOPNOTSUPP);
|
||||
}
|
||||
|
||||
/*
|
||||
* Get file system statistics.
|
||||
*/
|
||||
@ -444,16 +422,6 @@ coda_sync(vfsp, waitfor, cred, p)
|
||||
return(0);
|
||||
}
|
||||
|
||||
int
|
||||
coda_vget(vfsp, ino, vpp)
|
||||
struct mount *vfsp;
|
||||
ino_t ino;
|
||||
struct vnode **vpp;
|
||||
{
|
||||
ENTRY;
|
||||
return (EOPNOTSUPP);
|
||||
}
|
||||
|
||||
/*
|
||||
* fhtovp is now what vget used to be in 4.3-derived systems. For
|
||||
* some silly reason, vget is now keyed by a 32 bit ino_t, rather than
|
||||
@ -502,22 +470,6 @@ coda_fhtovp(vfsp, fhp, nam, vpp, exflagsp, creadanonp)
|
||||
return(error);
|
||||
}
|
||||
|
||||
int
|
||||
coda_vptofh(vnp, fidp)
|
||||
struct vnode *vnp;
|
||||
struct fid *fidp;
|
||||
{
|
||||
ENTRY;
|
||||
return (EOPNOTSUPP);
|
||||
}
|
||||
|
||||
int
|
||||
coda_init(struct vfsconf *vfsp)
|
||||
{
|
||||
ENTRY;
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* To allow for greater ease of use, some vnodes may be orphaned when
|
||||
* Venus dies. Certain operations should still be allowed to go
|
||||
@ -570,18 +522,16 @@ struct mount *devtomp(dev)
|
||||
|
||||
struct vfsops coda_vfsops = {
|
||||
coda_mount,
|
||||
coda_start,
|
||||
vfs_stdstart,
|
||||
coda_unmount,
|
||||
coda_root,
|
||||
coda_quotactl,
|
||||
vfs_stdquotactl,
|
||||
coda_nb_statfs,
|
||||
coda_sync,
|
||||
coda_vget,
|
||||
(int (*) (struct mount *, struct fid *, struct sockaddr *, struct vnode **,
|
||||
int *, struct ucred **))
|
||||
eopnotsupp,
|
||||
(int (*) (struct vnode *, struct fid *)) eopnotsupp,
|
||||
coda_init,
|
||||
vfs_stdvget,
|
||||
vfs_stdfhtovp,
|
||||
vfs_stdvptofh,
|
||||
vfs_stdinit
|
||||
};
|
||||
|
||||
VFS_SET(coda_vfsops, coda, VFCF_NETWORK);
|
||||
|
@ -57,13 +57,10 @@ static MALLOC_DEFINE(M_FDESCMNT, "FDESC mount", "FDESC mount structure");
|
||||
|
||||
static int fdesc_mount __P((struct mount *mp, char *path, caddr_t data,
|
||||
struct nameidata *ndp, struct proc *p));
|
||||
static int fdesc_start __P((struct mount *mp, int flags, struct proc *p));
|
||||
static int fdesc_unmount __P((struct mount *mp, int mntflags,
|
||||
struct proc *p));
|
||||
static int fdesc_statfs __P((struct mount *mp, struct statfs *sbp,
|
||||
struct proc *p));
|
||||
static int fdesc_sync __P((struct mount *mp, int waitfor,
|
||||
struct ucred *cred, struct proc *p));
|
||||
|
||||
/*
|
||||
* Mount the per-process file descriptors (/dev/fd)
|
||||
@ -109,15 +106,6 @@ fdesc_mount(mp, path, data, ndp, p)
|
||||
return (0);
|
||||
}
|
||||
|
||||
static int
|
||||
fdesc_start(mp, flags, p)
|
||||
struct mount *mp;
|
||||
int flags;
|
||||
struct proc *p;
|
||||
{
|
||||
return (0);
|
||||
}
|
||||
|
||||
static int
|
||||
fdesc_unmount(mp, mntflags, p)
|
||||
struct mount *mp;
|
||||
@ -226,38 +214,17 @@ fdesc_statfs(mp, sbp, p)
|
||||
return (0);
|
||||
}
|
||||
|
||||
static int
|
||||
fdesc_sync(mp, waitfor, cred, p)
|
||||
struct mount *mp;
|
||||
int waitfor;
|
||||
struct ucred *cred;
|
||||
struct proc *p;
|
||||
{
|
||||
|
||||
return (0);
|
||||
}
|
||||
|
||||
#define fdesc_fhtovp ((int (*) __P((struct mount *, struct fid *, \
|
||||
struct sockaddr *, struct vnode **, int *, struct ucred **)))eopnotsupp)
|
||||
#define fdesc_quotactl ((int (*) __P((struct mount *, int, uid_t, caddr_t, \
|
||||
struct proc *)))eopnotsupp)
|
||||
#define fdesc_sysctl ((int (*) __P((int *, u_int, void *, size_t *, void *, \
|
||||
size_t, struct proc *)))eopnotsupp)
|
||||
#define fdesc_vget ((int (*) __P((struct mount *, ino_t, struct vnode **))) \
|
||||
eopnotsupp)
|
||||
#define fdesc_vptofh ((int (*) __P((struct vnode *, struct fid *)))eopnotsupp)
|
||||
|
||||
static struct vfsops fdesc_vfsops = {
|
||||
fdesc_mount,
|
||||
fdesc_start,
|
||||
vfs_stdstart,
|
||||
fdesc_unmount,
|
||||
fdesc_root,
|
||||
fdesc_quotactl,
|
||||
vfs_stdquotactl,
|
||||
fdesc_statfs,
|
||||
fdesc_sync,
|
||||
fdesc_vget,
|
||||
fdesc_fhtovp,
|
||||
fdesc_vptofh,
|
||||
vfs_stdsync,
|
||||
vfs_stdvget,
|
||||
vfs_stdfhtovp,
|
||||
vfs_stdvptofh,
|
||||
fdesc_init,
|
||||
};
|
||||
|
||||
|
@ -79,17 +79,12 @@ static int msdosfs_fhtovp __P((struct mount *, struct fid *,
|
||||
struct ucred **));
|
||||
static int msdosfs_mount __P((struct mount *, char *, caddr_t,
|
||||
struct nameidata *, struct proc *));
|
||||
static int msdosfs_quotactl __P((struct mount *, int, uid_t, caddr_t,
|
||||
struct proc *));
|
||||
static int msdosfs_root __P((struct mount *, struct vnode **));
|
||||
static int msdosfs_start __P((struct mount *, int, struct proc *));
|
||||
static int msdosfs_statfs __P((struct mount *, struct statfs *,
|
||||
struct proc *));
|
||||
static int msdosfs_sync __P((struct mount *, int, struct ucred *,
|
||||
struct proc *));
|
||||
static int msdosfs_unmount __P((struct mount *, int, struct proc *));
|
||||
static int msdosfs_vget __P((struct mount *mp, ino_t ino,
|
||||
struct vnode **vpp));
|
||||
static int msdosfs_vptofh __P((struct vnode *, struct fid *));
|
||||
|
||||
static int
|
||||
@ -746,16 +741,6 @@ mountmsdosfs(devvp, mp, p, argp)
|
||||
return (error);
|
||||
}
|
||||
|
||||
static int
|
||||
msdosfs_start(mp, flags, p)
|
||||
struct mount *mp;
|
||||
int flags;
|
||||
struct proc *p;
|
||||
{
|
||||
|
||||
return (0);
|
||||
}
|
||||
|
||||
/*
|
||||
* Unmount the filesystem described by mp.
|
||||
*/
|
||||
@ -828,17 +813,6 @@ msdosfs_root(mp, vpp)
|
||||
return (0);
|
||||
}
|
||||
|
||||
static int
|
||||
msdosfs_quotactl(mp, cmds, uid, arg, p)
|
||||
struct mount *mp;
|
||||
int cmds;
|
||||
uid_t uid;
|
||||
caddr_t arg;
|
||||
struct proc *p;
|
||||
{
|
||||
return EOPNOTSUPP;
|
||||
}
|
||||
|
||||
static int
|
||||
msdosfs_statfs(mp, sbp, p)
|
||||
struct mount *mp;
|
||||
@ -986,24 +960,15 @@ msdosfs_vptofh(vp, fhp)
|
||||
return (0);
|
||||
}
|
||||
|
||||
static int
|
||||
msdosfs_vget(mp, ino, vpp)
|
||||
struct mount *mp;
|
||||
ino_t ino;
|
||||
struct vnode **vpp;
|
||||
{
|
||||
return EOPNOTSUPP;
|
||||
}
|
||||
|
||||
static struct vfsops msdosfs_vfsops = {
|
||||
msdosfs_mount,
|
||||
msdosfs_start,
|
||||
vfs_stdstart,
|
||||
msdosfs_unmount,
|
||||
msdosfs_root,
|
||||
msdosfs_quotactl,
|
||||
vfs_stdquotactl,
|
||||
msdosfs_statfs,
|
||||
msdosfs_sync,
|
||||
msdosfs_vget,
|
||||
vfs_stdvget,
|
||||
msdosfs_fhtovp,
|
||||
msdosfs_vptofh,
|
||||
msdosfs_init
|
||||
|
@ -71,26 +71,31 @@ static int ntfs_mount __P((struct mount *, char *, caddr_t,
|
||||
static int ntfs_mount __P((struct mount *, const char *, void *,
|
||||
struct nameidata *, struct proc *));
|
||||
#endif
|
||||
static int ntfs_quotactl __P((struct mount *, int, uid_t, caddr_t,
|
||||
struct proc *));
|
||||
static int ntfs_root __P((struct mount *, struct vnode **));
|
||||
static int ntfs_start __P((struct mount *, int, struct proc *));
|
||||
static int ntfs_statfs __P((struct mount *, struct statfs *,
|
||||
struct proc *));
|
||||
static int ntfs_sync __P((struct mount *, int, struct ucred *,
|
||||
struct proc *));
|
||||
static int ntfs_unmount __P((struct mount *, int, struct proc *));
|
||||
static int ntfs_vget __P((struct mount *mp, ino_t ino,
|
||||
struct vnode **vpp));
|
||||
static int ntfs_mountfs __P((register struct vnode *, struct mount *,
|
||||
struct ntfs_args *, struct proc *));
|
||||
|
||||
#if !defined(__FreeBSD__)
|
||||
static int ntfs_quotactl __P((struct mount *, int, uid_t, caddr_t,
|
||||
struct proc *));
|
||||
static int ntfs_start __P((struct mount *, int, struct proc *));
|
||||
static int ntfs_sync __P((struct mount *, int, struct ucred *,
|
||||
struct proc *));
|
||||
static int ntfs_vptofh __P((struct vnode *, struct fid *));
|
||||
#endif /* !defined(__FreeBSD__) */
|
||||
|
||||
#if defined(__FreeBSD__)
|
||||
static int ntfs_init __P((struct vfsconf *));
|
||||
#if 0 /* may be implemented at a later date */
|
||||
static int ntfs_fhtovp __P((struct mount *, struct fid *,
|
||||
struct sockaddr *, struct vnode **,
|
||||
int *, struct ucred **));
|
||||
#endif
|
||||
#elif defined(__NetBSD__)
|
||||
static void ntfs_init __P((void));
|
||||
static int ntfs_fhtovp __P((struct mount *, struct fid *,
|
||||
@ -589,6 +594,7 @@ ntfs_mountfs(devvp, mp, argsp, p)
|
||||
return (error);
|
||||
}
|
||||
|
||||
#if !defined(__FreeBSD__)
|
||||
static int
|
||||
ntfs_start (
|
||||
struct mount *mp,
|
||||
@ -597,6 +603,7 @@ ntfs_start (
|
||||
{
|
||||
return (0);
|
||||
}
|
||||
#endif /* !defined(__FreeBSD__) */
|
||||
|
||||
static int
|
||||
ntfs_unmount(
|
||||
@ -676,6 +683,7 @@ ntfs_root(
|
||||
return (0);
|
||||
}
|
||||
|
||||
#if !defined(__FreeBSD__)
|
||||
static int
|
||||
ntfs_quotactl (
|
||||
struct mount *mp,
|
||||
@ -687,6 +695,7 @@ ntfs_quotactl (
|
||||
printf("\nntfs_quotactl():\n");
|
||||
return EOPNOTSUPP;
|
||||
}
|
||||
#endif /* !defined(__FreeBSD__) */
|
||||
|
||||
int
|
||||
ntfs_calccfree(
|
||||
@ -762,6 +771,7 @@ ntfs_statfs(
|
||||
return (0);
|
||||
}
|
||||
|
||||
#if !defined(__FreeBSD__)
|
||||
static int
|
||||
ntfs_sync (
|
||||
struct mount *mp,
|
||||
@ -772,7 +782,9 @@ ntfs_sync (
|
||||
/*dprintf(("ntfs_sync():\n"));*/
|
||||
return (0);
|
||||
}
|
||||
#endif /* !defined(__FreeBSD__) */
|
||||
|
||||
#if !defined(__FreeBSD__)
|
||||
/*ARGSUSED*/
|
||||
static int
|
||||
ntfs_fhtovp(
|
||||
@ -808,6 +820,7 @@ ntfs_vptofh(
|
||||
printf("ntfs_vptofh():\n");
|
||||
return EOPNOTSUPP;
|
||||
}
|
||||
#endif /* !defined(__FreeBSD__) */
|
||||
|
||||
int
|
||||
ntfs_vgetex(
|
||||
@ -931,15 +944,15 @@ ntfs_vget(
|
||||
#if defined(__FreeBSD__)
|
||||
static struct vfsops ntfs_vfsops = {
|
||||
ntfs_mount,
|
||||
ntfs_start,
|
||||
vfs_stdstart,
|
||||
ntfs_unmount,
|
||||
ntfs_root,
|
||||
ntfs_quotactl,
|
||||
vfs_stdquotactl,
|
||||
ntfs_statfs,
|
||||
ntfs_sync,
|
||||
vfs_stdsync,
|
||||
ntfs_vget,
|
||||
ntfs_fhtovp,
|
||||
ntfs_vptofh,
|
||||
vfs_stdfhtovp,
|
||||
vfs_stdvptofh,
|
||||
ntfs_init,
|
||||
NULL
|
||||
};
|
||||
|
@ -59,24 +59,14 @@
|
||||
|
||||
static MALLOC_DEFINE(M_PORTALFSMNT, "PORTAL mount", "PORTAL mount structure");
|
||||
|
||||
static int portal_init __P((struct vfsconf *));
|
||||
static int portal_mount __P((struct mount *mp, char *path, caddr_t data,
|
||||
struct nameidata *ndp, struct proc *p));
|
||||
static int portal_start __P((struct mount *mp, int flags, struct proc *p));
|
||||
static int portal_unmount __P((struct mount *mp, int mntflags,
|
||||
struct proc *p));
|
||||
static int portal_root __P((struct mount *mp, struct vnode **vpp));
|
||||
static int portal_statfs __P((struct mount *mp, struct statfs *sbp,
|
||||
struct proc *p));
|
||||
|
||||
static int
|
||||
portal_init(vfsp)
|
||||
struct vfsconf *vfsp;
|
||||
{
|
||||
|
||||
return (0);
|
||||
}
|
||||
|
||||
/*
|
||||
* Mount the per-process file descriptors (/dev/fd)
|
||||
*/
|
||||
@ -155,16 +145,6 @@ portal_mount(mp, path, data, ndp, p)
|
||||
return (0);
|
||||
}
|
||||
|
||||
static int
|
||||
portal_start(mp, flags, p)
|
||||
struct mount *mp;
|
||||
int flags;
|
||||
struct proc *p;
|
||||
{
|
||||
|
||||
return (0);
|
||||
}
|
||||
|
||||
static int
|
||||
portal_unmount(mp, mntflags, p)
|
||||
struct mount *mp;
|
||||
@ -263,30 +243,18 @@ portal_statfs(mp, sbp, p)
|
||||
return (0);
|
||||
}
|
||||
|
||||
#define portal_fhtovp ((int (*) __P((struct mount *, struct fid *, \
|
||||
struct sockaddr *, struct vnode **, int *, struct ucred **)))eopnotsupp)
|
||||
#define portal_quotactl ((int (*) __P((struct mount *, int, uid_t, caddr_t, \
|
||||
struct proc *)))eopnotsupp)
|
||||
#define portal_sync ((int (*) __P((struct mount *, int, struct ucred *, \
|
||||
struct proc *)))nullop)
|
||||
#define portal_sysctl ((int (*) __P((int *, u_int, void *, size_t *, void *, \
|
||||
size_t, struct proc *)))eopnotsupp)
|
||||
#define portal_vget ((int (*) __P((struct mount *, ino_t, struct vnode **))) \
|
||||
eopnotsupp)
|
||||
#define portal_vptofh ((int (*) __P((struct vnode *, struct fid *)))eopnotsupp)
|
||||
|
||||
static struct vfsops portal_vfsops = {
|
||||
portal_mount,
|
||||
portal_start,
|
||||
vfs_stdstart,
|
||||
portal_unmount,
|
||||
portal_root,
|
||||
portal_quotactl,
|
||||
vfs_stdquotactl,
|
||||
portal_statfs,
|
||||
portal_sync,
|
||||
portal_vget,
|
||||
portal_fhtovp,
|
||||
portal_vptofh,
|
||||
portal_init,
|
||||
vfs_stdsync,
|
||||
vfs_stdvget,
|
||||
vfs_stdfhtovp,
|
||||
vfs_stdvptofh,
|
||||
vfs_stdinit,
|
||||
};
|
||||
|
||||
VFS_SET(portal_vfsops, portal, VFCF_SYNTHETIC);
|
||||
|
@ -52,10 +52,8 @@
|
||||
#include <sys/vnode.h>
|
||||
#include <miscfs/procfs/procfs.h>
|
||||
|
||||
static int procfs_init __P((struct vfsconf *vfsp));
|
||||
static int procfs_mount __P((struct mount *mp, char *path, caddr_t data,
|
||||
struct nameidata *ndp, struct proc *p));
|
||||
static int procfs_start __P((struct mount *mp, int flags, struct proc *p));
|
||||
static int procfs_statfs __P((struct mount *mp, struct statfs *sbp,
|
||||
struct proc *p));
|
||||
static int procfs_unmount __P((struct mount *mp, int mntflags,
|
||||
@ -135,17 +133,6 @@ procfs_root(mp, vpp)
|
||||
return (procfs_allocvp(mp, vpp, 0, Proot));
|
||||
}
|
||||
|
||||
/* ARGSUSED */
|
||||
static int
|
||||
procfs_start(mp, flags, p)
|
||||
struct mount *mp;
|
||||
int flags;
|
||||
struct proc *p;
|
||||
{
|
||||
|
||||
return (0);
|
||||
}
|
||||
|
||||
/*
|
||||
* Get file system statistics.
|
||||
*/
|
||||
@ -173,38 +160,18 @@ procfs_statfs(mp, sbp, p)
|
||||
return (0);
|
||||
}
|
||||
|
||||
static int
|
||||
procfs_init(vfsp)
|
||||
struct vfsconf *vfsp;
|
||||
{
|
||||
|
||||
return (0);
|
||||
}
|
||||
|
||||
#define procfs_fhtovp ((int (*) __P((struct mount *, struct fid *, \
|
||||
struct sockaddr *, struct vnode **, int *, struct ucred **)))einval)
|
||||
#define procfs_quotactl ((int (*) __P((struct mount *, int, uid_t, caddr_t, \
|
||||
struct proc *)))eopnotsupp)
|
||||
#define procfs_sync ((int (*) __P((struct mount *, int, struct ucred *, \
|
||||
struct proc *)))nullop)
|
||||
#define procfs_sysctl ((int (*) __P((int *, u_int, void *, size_t *, void *, \
|
||||
size_t, struct proc *)))eopnotsupp)
|
||||
#define procfs_vget ((int (*) __P((struct mount *, ino_t, struct vnode **))) \
|
||||
eopnotsupp)
|
||||
#define procfs_vptofh ((int (*) __P((struct vnode *, struct fid *)))einval)
|
||||
|
||||
static struct vfsops procfs_vfsops = {
|
||||
procfs_mount,
|
||||
procfs_start,
|
||||
vfs_stdstart,
|
||||
procfs_unmount,
|
||||
procfs_root,
|
||||
procfs_quotactl,
|
||||
vfs_stdquotactl,
|
||||
procfs_statfs,
|
||||
procfs_sync,
|
||||
procfs_vget,
|
||||
procfs_fhtovp,
|
||||
procfs_vptofh,
|
||||
procfs_init,
|
||||
vfs_stdsync,
|
||||
vfs_stdvget,
|
||||
vfs_stdfhtovp,
|
||||
vfs_stdvptofh,
|
||||
vfs_stdinit,
|
||||
};
|
||||
|
||||
VFS_SET(procfs_vfsops, procfs, VFCF_SYNTHETIC);
|
||||
|
@ -56,25 +56,13 @@
|
||||
static MALLOC_DEFINE(M_UNIONFSMNT, "UNION mount", "UNION mount structure");
|
||||
|
||||
extern int union_init __P((struct vfsconf *));
|
||||
|
||||
extern int union_fhtovp __P((struct mount *mp, struct fid *fidp,
|
||||
struct mbuf *nam, struct vnode **vpp,
|
||||
int *exflagsp, struct ucred **credanonp));
|
||||
static int union_mount __P((struct mount *mp, char *path, caddr_t data,
|
||||
struct nameidata *ndp, struct proc *p));
|
||||
extern int union_quotactl __P((struct mount *mp, int cmd, uid_t uid,
|
||||
caddr_t arg, struct proc *p));
|
||||
static int union_root __P((struct mount *mp, struct vnode **vpp));
|
||||
static int union_start __P((struct mount *mp, int flags, struct proc *p));
|
||||
static int union_statfs __P((struct mount *mp, struct statfs *sbp,
|
||||
struct proc *p));
|
||||
extern int union_sync __P((struct mount *mp, int waitfor,
|
||||
struct ucred *cred, struct proc *p));
|
||||
static int union_unmount __P((struct mount *mp, int mntflags,
|
||||
struct proc *p));
|
||||
extern int union_vget __P((struct mount *mp, ino_t ino,
|
||||
struct vnode **vpp));
|
||||
extern int union_vptofh __P((struct vnode *vp, struct fid *fhp));
|
||||
|
||||
/*
|
||||
* Mount union filesystem
|
||||
@ -288,21 +276,6 @@ union_mount(mp, path, data, ndp, p)
|
||||
return (error);
|
||||
}
|
||||
|
||||
/*
|
||||
* VFS start. Nothing needed here - the start routine
|
||||
* on the underlying filesystem(s) will have been called
|
||||
* when that filesystem was mounted.
|
||||
*/
|
||||
static int
|
||||
union_start(mp, flags, p)
|
||||
struct mount *mp;
|
||||
int flags;
|
||||
struct proc *p;
|
||||
{
|
||||
|
||||
return (0);
|
||||
}
|
||||
|
||||
/*
|
||||
* Free reference to union layer
|
||||
*/
|
||||
@ -521,33 +494,17 @@ union_statfs(mp, sbp, p)
|
||||
return (0);
|
||||
}
|
||||
|
||||
/*
|
||||
* XXX - Assumes no data cached at union layer.
|
||||
*/
|
||||
#define union_sync ((int (*) __P((struct mount *, int, struct ucred *, \
|
||||
struct proc *)))nullop)
|
||||
|
||||
#define union_fhtovp ((int (*) __P((struct mount *, struct fid *, \
|
||||
struct sockaddr *, struct vnode **, int *, struct ucred **)))eopnotsupp)
|
||||
#define union_quotactl ((int (*) __P((struct mount *, int, uid_t, caddr_t, \
|
||||
struct proc *)))eopnotsupp)
|
||||
#define union_sysctl ((int (*) __P((int *, u_int, void *, size_t *, void *, \
|
||||
size_t, struct proc *)))eopnotsupp)
|
||||
#define union_vget ((int (*) __P((struct mount *, ino_t, struct vnode **))) \
|
||||
eopnotsupp)
|
||||
#define union_vptofh ((int (*) __P((struct vnode *, struct fid *)))eopnotsupp)
|
||||
|
||||
static struct vfsops union_vfsops = {
|
||||
union_mount,
|
||||
union_start,
|
||||
vfs_stdstart,
|
||||
union_unmount,
|
||||
union_root,
|
||||
union_quotactl,
|
||||
vfs_stdquotactl,
|
||||
union_statfs,
|
||||
union_sync,
|
||||
union_vget,
|
||||
union_fhtovp,
|
||||
union_vptofh,
|
||||
vfs_stdsync, /* XXX assumes no cached data on union level */
|
||||
vfs_stdvget,
|
||||
vfs_stdfhtovp,
|
||||
vfs_stdvptofh,
|
||||
union_init,
|
||||
};
|
||||
|
||||
|
@ -64,14 +64,9 @@ MALLOC_DEFINE(M_ISOFSNODE, "ISOFS node", "ISOFS vnode private part");
|
||||
|
||||
static int cd9660_mount __P((struct mount *,
|
||||
char *, caddr_t, struct nameidata *, struct proc *));
|
||||
static int cd9660_start __P((struct mount *, int, struct proc *));
|
||||
static int cd9660_unmount __P((struct mount *, int, struct proc *));
|
||||
static int cd9660_root __P((struct mount *, struct vnode **));
|
||||
static int cd9660_quotactl __P((struct mount *, int, uid_t, caddr_t,
|
||||
struct proc *));
|
||||
static int cd9660_statfs __P((struct mount *, struct statfs *, struct proc *));
|
||||
static int cd9660_sync __P((struct mount *, int, struct ucred *,
|
||||
struct proc *));
|
||||
static int cd9660_vget __P((struct mount *, ino_t, struct vnode **));
|
||||
static int cd9660_fhtovp __P((struct mount *, struct fid *, struct sockaddr *,
|
||||
struct vnode **, int *, struct ucred **));
|
||||
@ -79,16 +74,16 @@ static int cd9660_vptofh __P((struct vnode *, struct fid *));
|
||||
|
||||
static struct vfsops cd9660_vfsops = {
|
||||
cd9660_mount,
|
||||
cd9660_start,
|
||||
vfs_stdstart,
|
||||
cd9660_unmount,
|
||||
cd9660_root,
|
||||
cd9660_quotactl,
|
||||
vfs_stdquotactl,
|
||||
cd9660_statfs,
|
||||
cd9660_sync,
|
||||
vfs_stdsync,
|
||||
cd9660_vget,
|
||||
cd9660_fhtovp,
|
||||
cd9660_vptofh,
|
||||
cd9660_init
|
||||
cd9660_init,
|
||||
};
|
||||
VFS_SET(cd9660_vfsops, cd9660, VFCF_READONLY);
|
||||
|
||||
@ -523,20 +518,6 @@ iso_mountfs(devvp, mp, p, argp)
|
||||
return error;
|
||||
}
|
||||
|
||||
/*
|
||||
* Make a filesystem operational.
|
||||
* Nothing to do at the moment.
|
||||
*/
|
||||
/* ARGSUSED */
|
||||
static int
|
||||
cd9660_start(mp, flags, p)
|
||||
struct mount *mp;
|
||||
int flags;
|
||||
struct proc *p;
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* unmount system call
|
||||
*/
|
||||
@ -592,22 +573,6 @@ cd9660_root(mp, vpp)
|
||||
imp->iso_ftype == ISO_FTYPE_RRIP, dp));
|
||||
}
|
||||
|
||||
/*
|
||||
* Do operations associated with quotas, not supported
|
||||
*/
|
||||
/* ARGSUSED */
|
||||
static int
|
||||
cd9660_quotactl(mp, cmd, uid, arg, p)
|
||||
struct mount *mp;
|
||||
int cmd;
|
||||
uid_t uid;
|
||||
caddr_t arg;
|
||||
struct proc *p;
|
||||
{
|
||||
|
||||
return (EOPNOTSUPP);
|
||||
}
|
||||
|
||||
/*
|
||||
* Get file system statistics.
|
||||
*/
|
||||
@ -636,17 +601,6 @@ cd9660_statfs(mp, sbp, p)
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* ARGSUSED */
|
||||
static int
|
||||
cd9660_sync(mp, waitfor, cred, p)
|
||||
struct mount *mp;
|
||||
int waitfor;
|
||||
struct ucred *cred;
|
||||
struct proc *p;
|
||||
{
|
||||
return (0);
|
||||
}
|
||||
|
||||
/*
|
||||
* File handle to vnode
|
||||
*
|
||||
|
@ -45,6 +45,7 @@
|
||||
#include <sys/kernel.h>
|
||||
#include <sys/lock.h>
|
||||
#include <sys/malloc.h>
|
||||
#include <sys/mount.h>
|
||||
#include <sys/unistd.h>
|
||||
#include <sys/vnode.h>
|
||||
#include <sys/poll.h>
|
||||
@ -490,3 +491,118 @@ vop_noislocked(ap)
|
||||
return (lockstatus(vp->v_vnlock));
|
||||
}
|
||||
|
||||
/*
|
||||
* vfs default ops
|
||||
* used to fill the vfs fucntion table to get reasonable default return values.
|
||||
*/
|
||||
int
|
||||
vfs_stdmount (mp, path, data, ndp, p)
|
||||
struct mount *mp;
|
||||
char *path;
|
||||
caddr_t data;
|
||||
struct nameidata *ndp;
|
||||
struct proc *p;
|
||||
{
|
||||
return (0);
|
||||
}
|
||||
|
||||
int
|
||||
vfs_stdunmount (mp, mntflags, p)
|
||||
struct mount *mp;
|
||||
int mntflags;
|
||||
struct proc *p;
|
||||
{
|
||||
return (0);
|
||||
}
|
||||
|
||||
int
|
||||
vfs_stdroot (mp, vpp)
|
||||
struct mount *mp;
|
||||
struct vnode **vpp;
|
||||
{
|
||||
return (EOPNOTSUPP);
|
||||
}
|
||||
|
||||
int
|
||||
vfs_stdstatfs (mp, sbp, p)
|
||||
struct mount *mp;
|
||||
struct statfs *sbp;
|
||||
struct proc *p;
|
||||
{
|
||||
return (EOPNOTSUPP);
|
||||
}
|
||||
|
||||
int
|
||||
vfs_stdvptofh (vp, fhp)
|
||||
struct vnode *vp;
|
||||
struct fid *fhp;
|
||||
{
|
||||
return (EOPNOTSUPP);
|
||||
}
|
||||
|
||||
int
|
||||
vfs_stdstart (mp, flags, p)
|
||||
struct mount *mp;
|
||||
int flags;
|
||||
struct proc *p;
|
||||
{
|
||||
return (0);
|
||||
}
|
||||
|
||||
int
|
||||
vfs_stdquotactl (mp, cmds, uid, arg, p)
|
||||
struct mount *mp;
|
||||
int cmds;
|
||||
uid_t uid;
|
||||
caddr_t arg;
|
||||
struct proc *p;
|
||||
{
|
||||
return (EOPNOTSUPP);
|
||||
}
|
||||
|
||||
int
|
||||
vfs_stdsync (mp, waitfor, cred, p)
|
||||
struct mount *mp;
|
||||
int waitfor;
|
||||
struct ucred *cred;
|
||||
struct proc *p;
|
||||
{
|
||||
return (0);
|
||||
}
|
||||
|
||||
int
|
||||
vfs_stdvget (mp, ino, vpp)
|
||||
struct mount *mp;
|
||||
ino_t ino;
|
||||
struct vnode **vpp;
|
||||
{
|
||||
return (EOPNOTSUPP);
|
||||
}
|
||||
|
||||
int
|
||||
vfs_stdfhtovp (mp, fhp, nam, vpp, exflagsp, credanonp)
|
||||
struct mount *mp;
|
||||
struct fid *fhp;
|
||||
struct sockaddr *nam;
|
||||
struct vnode **vpp;
|
||||
int *exflagsp;
|
||||
struct ucred **credanonp;
|
||||
{
|
||||
return (EOPNOTSUPP);
|
||||
}
|
||||
|
||||
int
|
||||
vfs_stdinit (vfsp)
|
||||
struct vfsconf *vfsp;
|
||||
{
|
||||
return (0);
|
||||
}
|
||||
|
||||
int
|
||||
vfs_stduninit (vfsp)
|
||||
struct vfsconf *vfsp;
|
||||
{
|
||||
return(0);
|
||||
}
|
||||
|
||||
/* end of vfs default ops */
|
||||
|
@ -160,13 +160,6 @@ DBPRINT(("mount "));
|
||||
}
|
||||
|
||||
|
||||
static int
|
||||
devfs_start(struct mount *mp, int flags, struct proc *p)
|
||||
{
|
||||
DBPRINT(("start "));
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*-
|
||||
* Unmount the filesystem described by mp.
|
||||
*/
|
||||
@ -204,14 +197,6 @@ DBPRINT(("root "));
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
devfs_quotactl(struct mount *mp, int cmds, uid_t uid, caddr_t arg,
|
||||
struct proc *p)
|
||||
{
|
||||
DBPRINT(("quotactl "));
|
||||
return EOPNOTSUPP;
|
||||
}
|
||||
|
||||
static int
|
||||
devfs_statfs( struct mount *mp, struct statfs *sbp, struct proc *p)
|
||||
{
|
||||
@ -308,45 +293,17 @@ DBPRINT(("sync "));
|
||||
return (allerror);
|
||||
}
|
||||
|
||||
static int
|
||||
devfs_vget(struct mount *mp, ino_t ino,struct vnode **vpp)
|
||||
{
|
||||
DBPRINT(("vget "));
|
||||
return EOPNOTSUPP;
|
||||
}
|
||||
|
||||
/*************************************************************
|
||||
* The concept of exporting a kernel generated devfs is stupid
|
||||
* So don't handle filehandles
|
||||
*/
|
||||
|
||||
static int
|
||||
devfs_fhtovp (struct mount *mp, struct fid *fhp, struct sockaddr *nam,
|
||||
struct vnode **vpp, int *exflagsp, struct ucred **credanonp)
|
||||
{
|
||||
DBPRINT(("fhtovp "));
|
||||
return (EINVAL);
|
||||
}
|
||||
|
||||
|
||||
static int
|
||||
devfs_vptofh (struct vnode *vp, struct fid *fhp)
|
||||
{
|
||||
DBPRINT(("vptofh "));
|
||||
return (EINVAL);
|
||||
}
|
||||
|
||||
static struct vfsops devfs_vfsops = {
|
||||
devfs_mount,
|
||||
devfs_start,
|
||||
vfs_stdstart,
|
||||
devfs_unmount,
|
||||
devfs_root,
|
||||
devfs_quotactl,
|
||||
vfs_stdquotactl,
|
||||
devfs_statfs,
|
||||
devfs_sync,
|
||||
devfs_vget,
|
||||
devfs_fhtovp,
|
||||
devfs_vptofh,
|
||||
vfs_stdvget,
|
||||
vfs_stdfhtovp,
|
||||
vfs_stdvptofh,
|
||||
devfs_init
|
||||
};
|
||||
|
||||
|
@ -57,13 +57,10 @@ static MALLOC_DEFINE(M_FDESCMNT, "FDESC mount", "FDESC mount structure");
|
||||
|
||||
static int fdesc_mount __P((struct mount *mp, char *path, caddr_t data,
|
||||
struct nameidata *ndp, struct proc *p));
|
||||
static int fdesc_start __P((struct mount *mp, int flags, struct proc *p));
|
||||
static int fdesc_unmount __P((struct mount *mp, int mntflags,
|
||||
struct proc *p));
|
||||
static int fdesc_statfs __P((struct mount *mp, struct statfs *sbp,
|
||||
struct proc *p));
|
||||
static int fdesc_sync __P((struct mount *mp, int waitfor,
|
||||
struct ucred *cred, struct proc *p));
|
||||
|
||||
/*
|
||||
* Mount the per-process file descriptors (/dev/fd)
|
||||
@ -109,15 +106,6 @@ fdesc_mount(mp, path, data, ndp, p)
|
||||
return (0);
|
||||
}
|
||||
|
||||
static int
|
||||
fdesc_start(mp, flags, p)
|
||||
struct mount *mp;
|
||||
int flags;
|
||||
struct proc *p;
|
||||
{
|
||||
return (0);
|
||||
}
|
||||
|
||||
static int
|
||||
fdesc_unmount(mp, mntflags, p)
|
||||
struct mount *mp;
|
||||
@ -226,38 +214,17 @@ fdesc_statfs(mp, sbp, p)
|
||||
return (0);
|
||||
}
|
||||
|
||||
static int
|
||||
fdesc_sync(mp, waitfor, cred, p)
|
||||
struct mount *mp;
|
||||
int waitfor;
|
||||
struct ucred *cred;
|
||||
struct proc *p;
|
||||
{
|
||||
|
||||
return (0);
|
||||
}
|
||||
|
||||
#define fdesc_fhtovp ((int (*) __P((struct mount *, struct fid *, \
|
||||
struct sockaddr *, struct vnode **, int *, struct ucred **)))eopnotsupp)
|
||||
#define fdesc_quotactl ((int (*) __P((struct mount *, int, uid_t, caddr_t, \
|
||||
struct proc *)))eopnotsupp)
|
||||
#define fdesc_sysctl ((int (*) __P((int *, u_int, void *, size_t *, void *, \
|
||||
size_t, struct proc *)))eopnotsupp)
|
||||
#define fdesc_vget ((int (*) __P((struct mount *, ino_t, struct vnode **))) \
|
||||
eopnotsupp)
|
||||
#define fdesc_vptofh ((int (*) __P((struct vnode *, struct fid *)))eopnotsupp)
|
||||
|
||||
static struct vfsops fdesc_vfsops = {
|
||||
fdesc_mount,
|
||||
fdesc_start,
|
||||
vfs_stdstart,
|
||||
fdesc_unmount,
|
||||
fdesc_root,
|
||||
fdesc_quotactl,
|
||||
vfs_stdquotactl,
|
||||
fdesc_statfs,
|
||||
fdesc_sync,
|
||||
fdesc_vget,
|
||||
fdesc_fhtovp,
|
||||
fdesc_vptofh,
|
||||
vfs_stdsync,
|
||||
vfs_stdvget,
|
||||
vfs_stdfhtovp,
|
||||
vfs_stdvptofh,
|
||||
fdesc_init,
|
||||
};
|
||||
|
||||
|
@ -51,17 +51,6 @@ struct kernfs_node {
|
||||
#define VFSTOKERNFS(mp) ((struct kernfs_mount *)((mp)->mnt_data))
|
||||
#define VTOKERN(vp) ((struct kernfs_node *)(vp)->v_data)
|
||||
|
||||
#define kernfs_fhtovp ((int (*) __P((struct mount *, struct fid *, \
|
||||
struct sockaddr *, struct vnode **, int *, struct ucred **)))eopnotsupp)
|
||||
#define kernfs_quotactl ((int (*) __P((struct mount *, int, uid_t, caddr_t, \
|
||||
struct proc *)))eopnotsupp)
|
||||
#define kernfs_sync ((int (*) __P((struct mount *, int, struct ucred *, \
|
||||
struct proc *)))nullop)
|
||||
#define kernfs_sysctl ((int (*) __P((int *, u_int, void *, size_t *, void *, \
|
||||
size_t, struct proc *)))eopnotsupp)
|
||||
#define kernfs_vget ((int (*) __P((struct mount *, ino_t, struct vnode **))) \
|
||||
eopnotsupp)
|
||||
#define kernfs_vptofh ((int (*) __P((struct vnode *, struct fid *)))eopnotsupp)
|
||||
extern vop_t **kernfs_vnodeop_p;
|
||||
extern dev_t rrootdev;
|
||||
#endif /* KERNEL */
|
||||
|
@ -57,24 +57,14 @@ static MALLOC_DEFINE(M_KERNFSMNT, "KERNFS mount", "KERNFS mount structure");
|
||||
dev_t rrootdev = NODEV;
|
||||
|
||||
static void kernfs_get_rrootdev __P((void));
|
||||
static int kernfs_init __P((struct vfsconf *vfsp));
|
||||
static int kernfs_mount __P((struct mount *mp, char *path, caddr_t data,
|
||||
struct nameidata *ndp, struct proc *p));
|
||||
static int kernfs_start __P((struct mount *mp, int flags, struct proc *p));
|
||||
static int kernfs_unmount __P((struct mount *mp, int mntflags,
|
||||
struct proc *p));
|
||||
struct proc *p));
|
||||
static int kernfs_root __P((struct mount *mp, struct vnode **vpp));
|
||||
static int kernfs_statfs __P((struct mount *mp, struct statfs *sbp,
|
||||
struct proc *p));
|
||||
|
||||
static int
|
||||
kernfs_init(vfsp)
|
||||
struct vfsconf *vfsp;
|
||||
{
|
||||
|
||||
return (0);
|
||||
}
|
||||
|
||||
static void
|
||||
kernfs_get_rrootdev()
|
||||
{
|
||||
@ -153,15 +143,6 @@ kernfs_mount(mp, path, data, ndp, p)
|
||||
return (0);
|
||||
}
|
||||
|
||||
static int
|
||||
kernfs_start(mp, flags, p)
|
||||
struct mount *mp;
|
||||
int flags;
|
||||
struct proc *p;
|
||||
{
|
||||
return (0);
|
||||
}
|
||||
|
||||
static int
|
||||
kernfs_unmount(mp, mntflags, p)
|
||||
struct mount *mp;
|
||||
@ -263,16 +244,16 @@ kernfs_statfs(mp, sbp, p)
|
||||
|
||||
static struct vfsops kernfs_vfsops = {
|
||||
kernfs_mount,
|
||||
kernfs_start,
|
||||
vfs_stdstart,
|
||||
kernfs_unmount,
|
||||
kernfs_root,
|
||||
kernfs_quotactl,
|
||||
vfs_stdquotactl,
|
||||
kernfs_statfs,
|
||||
kernfs_sync,
|
||||
kernfs_vget,
|
||||
kernfs_fhtovp,
|
||||
kernfs_vptofh,
|
||||
kernfs_init,
|
||||
vfs_stdsync,
|
||||
vfs_stdvget,
|
||||
vfs_stdfhtovp,
|
||||
vfs_stdvptofh,
|
||||
vfs_stdinit,
|
||||
};
|
||||
|
||||
VFS_SET(kernfs_vfsops, kernfs, VFCF_SYNTHETIC);
|
||||
|
@ -59,24 +59,14 @@
|
||||
|
||||
static MALLOC_DEFINE(M_PORTALFSMNT, "PORTAL mount", "PORTAL mount structure");
|
||||
|
||||
static int portal_init __P((struct vfsconf *));
|
||||
static int portal_mount __P((struct mount *mp, char *path, caddr_t data,
|
||||
struct nameidata *ndp, struct proc *p));
|
||||
static int portal_start __P((struct mount *mp, int flags, struct proc *p));
|
||||
static int portal_unmount __P((struct mount *mp, int mntflags,
|
||||
struct proc *p));
|
||||
static int portal_root __P((struct mount *mp, struct vnode **vpp));
|
||||
static int portal_statfs __P((struct mount *mp, struct statfs *sbp,
|
||||
struct proc *p));
|
||||
|
||||
static int
|
||||
portal_init(vfsp)
|
||||
struct vfsconf *vfsp;
|
||||
{
|
||||
|
||||
return (0);
|
||||
}
|
||||
|
||||
/*
|
||||
* Mount the per-process file descriptors (/dev/fd)
|
||||
*/
|
||||
@ -155,16 +145,6 @@ portal_mount(mp, path, data, ndp, p)
|
||||
return (0);
|
||||
}
|
||||
|
||||
static int
|
||||
portal_start(mp, flags, p)
|
||||
struct mount *mp;
|
||||
int flags;
|
||||
struct proc *p;
|
||||
{
|
||||
|
||||
return (0);
|
||||
}
|
||||
|
||||
static int
|
||||
portal_unmount(mp, mntflags, p)
|
||||
struct mount *mp;
|
||||
@ -263,30 +243,18 @@ portal_statfs(mp, sbp, p)
|
||||
return (0);
|
||||
}
|
||||
|
||||
#define portal_fhtovp ((int (*) __P((struct mount *, struct fid *, \
|
||||
struct sockaddr *, struct vnode **, int *, struct ucred **)))eopnotsupp)
|
||||
#define portal_quotactl ((int (*) __P((struct mount *, int, uid_t, caddr_t, \
|
||||
struct proc *)))eopnotsupp)
|
||||
#define portal_sync ((int (*) __P((struct mount *, int, struct ucred *, \
|
||||
struct proc *)))nullop)
|
||||
#define portal_sysctl ((int (*) __P((int *, u_int, void *, size_t *, void *, \
|
||||
size_t, struct proc *)))eopnotsupp)
|
||||
#define portal_vget ((int (*) __P((struct mount *, ino_t, struct vnode **))) \
|
||||
eopnotsupp)
|
||||
#define portal_vptofh ((int (*) __P((struct vnode *, struct fid *)))eopnotsupp)
|
||||
|
||||
static struct vfsops portal_vfsops = {
|
||||
portal_mount,
|
||||
portal_start,
|
||||
vfs_stdstart,
|
||||
portal_unmount,
|
||||
portal_root,
|
||||
portal_quotactl,
|
||||
vfs_stdquotactl,
|
||||
portal_statfs,
|
||||
portal_sync,
|
||||
portal_vget,
|
||||
portal_fhtovp,
|
||||
portal_vptofh,
|
||||
portal_init,
|
||||
vfs_stdsync,
|
||||
vfs_stdvget,
|
||||
vfs_stdfhtovp,
|
||||
vfs_stdvptofh,
|
||||
vfs_stdinit,
|
||||
};
|
||||
|
||||
VFS_SET(portal_vfsops, portal, VFCF_SYNTHETIC);
|
||||
|
@ -52,10 +52,8 @@
|
||||
#include <sys/vnode.h>
|
||||
#include <miscfs/procfs/procfs.h>
|
||||
|
||||
static int procfs_init __P((struct vfsconf *vfsp));
|
||||
static int procfs_mount __P((struct mount *mp, char *path, caddr_t data,
|
||||
struct nameidata *ndp, struct proc *p));
|
||||
static int procfs_start __P((struct mount *mp, int flags, struct proc *p));
|
||||
static int procfs_statfs __P((struct mount *mp, struct statfs *sbp,
|
||||
struct proc *p));
|
||||
static int procfs_unmount __P((struct mount *mp, int mntflags,
|
||||
@ -135,17 +133,6 @@ procfs_root(mp, vpp)
|
||||
return (procfs_allocvp(mp, vpp, 0, Proot));
|
||||
}
|
||||
|
||||
/* ARGSUSED */
|
||||
static int
|
||||
procfs_start(mp, flags, p)
|
||||
struct mount *mp;
|
||||
int flags;
|
||||
struct proc *p;
|
||||
{
|
||||
|
||||
return (0);
|
||||
}
|
||||
|
||||
/*
|
||||
* Get file system statistics.
|
||||
*/
|
||||
@ -173,38 +160,18 @@ procfs_statfs(mp, sbp, p)
|
||||
return (0);
|
||||
}
|
||||
|
||||
static int
|
||||
procfs_init(vfsp)
|
||||
struct vfsconf *vfsp;
|
||||
{
|
||||
|
||||
return (0);
|
||||
}
|
||||
|
||||
#define procfs_fhtovp ((int (*) __P((struct mount *, struct fid *, \
|
||||
struct sockaddr *, struct vnode **, int *, struct ucred **)))einval)
|
||||
#define procfs_quotactl ((int (*) __P((struct mount *, int, uid_t, caddr_t, \
|
||||
struct proc *)))eopnotsupp)
|
||||
#define procfs_sync ((int (*) __P((struct mount *, int, struct ucred *, \
|
||||
struct proc *)))nullop)
|
||||
#define procfs_sysctl ((int (*) __P((int *, u_int, void *, size_t *, void *, \
|
||||
size_t, struct proc *)))eopnotsupp)
|
||||
#define procfs_vget ((int (*) __P((struct mount *, ino_t, struct vnode **))) \
|
||||
eopnotsupp)
|
||||
#define procfs_vptofh ((int (*) __P((struct vnode *, struct fid *)))einval)
|
||||
|
||||
static struct vfsops procfs_vfsops = {
|
||||
procfs_mount,
|
||||
procfs_start,
|
||||
vfs_stdstart,
|
||||
procfs_unmount,
|
||||
procfs_root,
|
||||
procfs_quotactl,
|
||||
vfs_stdquotactl,
|
||||
procfs_statfs,
|
||||
procfs_sync,
|
||||
procfs_vget,
|
||||
procfs_fhtovp,
|
||||
procfs_vptofh,
|
||||
procfs_init,
|
||||
vfs_stdsync,
|
||||
vfs_stdvget,
|
||||
vfs_stdfhtovp,
|
||||
vfs_stdvptofh,
|
||||
vfs_stdinit,
|
||||
};
|
||||
|
||||
VFS_SET(procfs_vfsops, procfs, VFCF_SYNTHETIC);
|
||||
|
@ -56,25 +56,13 @@
|
||||
static MALLOC_DEFINE(M_UNIONFSMNT, "UNION mount", "UNION mount structure");
|
||||
|
||||
extern int union_init __P((struct vfsconf *));
|
||||
|
||||
extern int union_fhtovp __P((struct mount *mp, struct fid *fidp,
|
||||
struct mbuf *nam, struct vnode **vpp,
|
||||
int *exflagsp, struct ucred **credanonp));
|
||||
static int union_mount __P((struct mount *mp, char *path, caddr_t data,
|
||||
struct nameidata *ndp, struct proc *p));
|
||||
extern int union_quotactl __P((struct mount *mp, int cmd, uid_t uid,
|
||||
caddr_t arg, struct proc *p));
|
||||
static int union_root __P((struct mount *mp, struct vnode **vpp));
|
||||
static int union_start __P((struct mount *mp, int flags, struct proc *p));
|
||||
static int union_statfs __P((struct mount *mp, struct statfs *sbp,
|
||||
struct proc *p));
|
||||
extern int union_sync __P((struct mount *mp, int waitfor,
|
||||
struct ucred *cred, struct proc *p));
|
||||
static int union_unmount __P((struct mount *mp, int mntflags,
|
||||
struct proc *p));
|
||||
extern int union_vget __P((struct mount *mp, ino_t ino,
|
||||
struct vnode **vpp));
|
||||
extern int union_vptofh __P((struct vnode *vp, struct fid *fhp));
|
||||
|
||||
/*
|
||||
* Mount union filesystem
|
||||
@ -288,21 +276,6 @@ union_mount(mp, path, data, ndp, p)
|
||||
return (error);
|
||||
}
|
||||
|
||||
/*
|
||||
* VFS start. Nothing needed here - the start routine
|
||||
* on the underlying filesystem(s) will have been called
|
||||
* when that filesystem was mounted.
|
||||
*/
|
||||
static int
|
||||
union_start(mp, flags, p)
|
||||
struct mount *mp;
|
||||
int flags;
|
||||
struct proc *p;
|
||||
{
|
||||
|
||||
return (0);
|
||||
}
|
||||
|
||||
/*
|
||||
* Free reference to union layer
|
||||
*/
|
||||
@ -521,33 +494,17 @@ union_statfs(mp, sbp, p)
|
||||
return (0);
|
||||
}
|
||||
|
||||
/*
|
||||
* XXX - Assumes no data cached at union layer.
|
||||
*/
|
||||
#define union_sync ((int (*) __P((struct mount *, int, struct ucred *, \
|
||||
struct proc *)))nullop)
|
||||
|
||||
#define union_fhtovp ((int (*) __P((struct mount *, struct fid *, \
|
||||
struct sockaddr *, struct vnode **, int *, struct ucred **)))eopnotsupp)
|
||||
#define union_quotactl ((int (*) __P((struct mount *, int, uid_t, caddr_t, \
|
||||
struct proc *)))eopnotsupp)
|
||||
#define union_sysctl ((int (*) __P((int *, u_int, void *, size_t *, void *, \
|
||||
size_t, struct proc *)))eopnotsupp)
|
||||
#define union_vget ((int (*) __P((struct mount *, ino_t, struct vnode **))) \
|
||||
eopnotsupp)
|
||||
#define union_vptofh ((int (*) __P((struct vnode *, struct fid *)))eopnotsupp)
|
||||
|
||||
static struct vfsops union_vfsops = {
|
||||
union_mount,
|
||||
union_start,
|
||||
vfs_stdstart,
|
||||
union_unmount,
|
||||
union_root,
|
||||
union_quotactl,
|
||||
vfs_stdquotactl,
|
||||
union_statfs,
|
||||
union_sync,
|
||||
union_vget,
|
||||
union_fhtovp,
|
||||
union_vptofh,
|
||||
vfs_stdsync, /* XXX assumes no cached data on union level */
|
||||
vfs_stdvget,
|
||||
vfs_stdfhtovp,
|
||||
vfs_stdvptofh,
|
||||
union_init,
|
||||
};
|
||||
|
||||
|
@ -79,17 +79,12 @@ static int msdosfs_fhtovp __P((struct mount *, struct fid *,
|
||||
struct ucred **));
|
||||
static int msdosfs_mount __P((struct mount *, char *, caddr_t,
|
||||
struct nameidata *, struct proc *));
|
||||
static int msdosfs_quotactl __P((struct mount *, int, uid_t, caddr_t,
|
||||
struct proc *));
|
||||
static int msdosfs_root __P((struct mount *, struct vnode **));
|
||||
static int msdosfs_start __P((struct mount *, int, struct proc *));
|
||||
static int msdosfs_statfs __P((struct mount *, struct statfs *,
|
||||
struct proc *));
|
||||
static int msdosfs_sync __P((struct mount *, int, struct ucred *,
|
||||
struct proc *));
|
||||
static int msdosfs_unmount __P((struct mount *, int, struct proc *));
|
||||
static int msdosfs_vget __P((struct mount *mp, ino_t ino,
|
||||
struct vnode **vpp));
|
||||
static int msdosfs_vptofh __P((struct vnode *, struct fid *));
|
||||
|
||||
static int
|
||||
@ -746,16 +741,6 @@ mountmsdosfs(devvp, mp, p, argp)
|
||||
return (error);
|
||||
}
|
||||
|
||||
static int
|
||||
msdosfs_start(mp, flags, p)
|
||||
struct mount *mp;
|
||||
int flags;
|
||||
struct proc *p;
|
||||
{
|
||||
|
||||
return (0);
|
||||
}
|
||||
|
||||
/*
|
||||
* Unmount the filesystem described by mp.
|
||||
*/
|
||||
@ -828,17 +813,6 @@ msdosfs_root(mp, vpp)
|
||||
return (0);
|
||||
}
|
||||
|
||||
static int
|
||||
msdosfs_quotactl(mp, cmds, uid, arg, p)
|
||||
struct mount *mp;
|
||||
int cmds;
|
||||
uid_t uid;
|
||||
caddr_t arg;
|
||||
struct proc *p;
|
||||
{
|
||||
return EOPNOTSUPP;
|
||||
}
|
||||
|
||||
static int
|
||||
msdosfs_statfs(mp, sbp, p)
|
||||
struct mount *mp;
|
||||
@ -986,24 +960,15 @@ msdosfs_vptofh(vp, fhp)
|
||||
return (0);
|
||||
}
|
||||
|
||||
static int
|
||||
msdosfs_vget(mp, ino, vpp)
|
||||
struct mount *mp;
|
||||
ino_t ino;
|
||||
struct vnode **vpp;
|
||||
{
|
||||
return EOPNOTSUPP;
|
||||
}
|
||||
|
||||
static struct vfsops msdosfs_vfsops = {
|
||||
msdosfs_mount,
|
||||
msdosfs_start,
|
||||
vfs_stdstart,
|
||||
msdosfs_unmount,
|
||||
msdosfs_root,
|
||||
msdosfs_quotactl,
|
||||
vfs_stdquotactl,
|
||||
msdosfs_statfs,
|
||||
msdosfs_sync,
|
||||
msdosfs_vget,
|
||||
vfs_stdvget,
|
||||
msdosfs_fhtovp,
|
||||
msdosfs_vptofh,
|
||||
msdosfs_init
|
||||
|
@ -99,38 +99,28 @@ static int mountnfs __P((struct nfs_args *,struct mount *,
|
||||
struct sockaddr *,char *,char *,struct vnode **));
|
||||
static int nfs_mount __P(( struct mount *mp, char *path, caddr_t data,
|
||||
struct nameidata *ndp, struct proc *p));
|
||||
static int nfs_start __P(( struct mount *mp, int flags,
|
||||
struct proc *p));
|
||||
static int nfs_unmount __P(( struct mount *mp, int mntflags,
|
||||
struct proc *p));
|
||||
static int nfs_root __P(( struct mount *mp, struct vnode **vpp));
|
||||
static int nfs_quotactl __P(( struct mount *mp, int cmds, uid_t uid,
|
||||
caddr_t arg, struct proc *p));
|
||||
static int nfs_statfs __P(( struct mount *mp, struct statfs *sbp,
|
||||
struct proc *p));
|
||||
static int nfs_sync __P(( struct mount *mp, int waitfor,
|
||||
struct ucred *cred, struct proc *p));
|
||||
static int nfs_vptofh __P(( struct vnode *vp, struct fid *fhp));
|
||||
static int nfs_fhtovp __P((struct mount *mp, struct fid *fhp,
|
||||
struct sockaddr *nam, struct vnode **vpp,
|
||||
int *exflagsp, struct ucred **credanonp));
|
||||
static int nfs_vget __P((struct mount *, ino_t, struct vnode **));
|
||||
|
||||
|
||||
/*
|
||||
* nfs vfs operations.
|
||||
*/
|
||||
static struct vfsops nfs_vfsops = {
|
||||
nfs_mount,
|
||||
nfs_start,
|
||||
vfs_stdstart,
|
||||
nfs_unmount,
|
||||
nfs_root,
|
||||
nfs_quotactl,
|
||||
vfs_stdquotactl,
|
||||
nfs_statfs,
|
||||
nfs_sync,
|
||||
nfs_vget,
|
||||
nfs_fhtovp,
|
||||
nfs_vptofh,
|
||||
vfs_stdvget,
|
||||
vfs_stdfhtovp, /* shouldn't happen */
|
||||
vfs_stdvptofh, /* shouldn't happen */
|
||||
nfs_init,
|
||||
nfs_uninit,
|
||||
};
|
||||
@ -1078,77 +1068,3 @@ nfs_sync(mp, waitfor, cred, p)
|
||||
return (allerror);
|
||||
}
|
||||
|
||||
/*
|
||||
* NFS flat namespace lookup.
|
||||
* Currently unsupported.
|
||||
*/
|
||||
/* ARGSUSED */
|
||||
static int
|
||||
nfs_vget(mp, ino, vpp)
|
||||
struct mount *mp;
|
||||
ino_t ino;
|
||||
struct vnode **vpp;
|
||||
{
|
||||
|
||||
return (EOPNOTSUPP);
|
||||
}
|
||||
|
||||
/*
|
||||
* At this point, this should never happen
|
||||
*/
|
||||
/* ARGSUSED */
|
||||
static int
|
||||
nfs_fhtovp(mp, fhp, nam, vpp, exflagsp, credanonp)
|
||||
register struct mount *mp;
|
||||
struct fid *fhp;
|
||||
struct sockaddr *nam;
|
||||
struct vnode **vpp;
|
||||
int *exflagsp;
|
||||
struct ucred **credanonp;
|
||||
{
|
||||
|
||||
return (EINVAL);
|
||||
}
|
||||
|
||||
/*
|
||||
* Vnode pointer to File handle, should never happen either
|
||||
*/
|
||||
/* ARGSUSED */
|
||||
static int
|
||||
nfs_vptofh(vp, fhp)
|
||||
struct vnode *vp;
|
||||
struct fid *fhp;
|
||||
{
|
||||
|
||||
return (EINVAL);
|
||||
}
|
||||
|
||||
/*
|
||||
* Vfs start routine, a no-op.
|
||||
*/
|
||||
/* ARGSUSED */
|
||||
static int
|
||||
nfs_start(mp, flags, p)
|
||||
struct mount *mp;
|
||||
int flags;
|
||||
struct proc *p;
|
||||
{
|
||||
|
||||
return (0);
|
||||
}
|
||||
|
||||
/*
|
||||
* Do operations associated with quotas, not supported
|
||||
*/
|
||||
/* ARGSUSED */
|
||||
static int
|
||||
nfs_quotactl(mp, cmd, uid, arg, p)
|
||||
struct mount *mp;
|
||||
int cmd;
|
||||
uid_t uid;
|
||||
caddr_t arg;
|
||||
struct proc *p;
|
||||
{
|
||||
|
||||
return (EOPNOTSUPP);
|
||||
}
|
||||
|
@ -99,38 +99,28 @@ static int mountnfs __P((struct nfs_args *,struct mount *,
|
||||
struct sockaddr *,char *,char *,struct vnode **));
|
||||
static int nfs_mount __P(( struct mount *mp, char *path, caddr_t data,
|
||||
struct nameidata *ndp, struct proc *p));
|
||||
static int nfs_start __P(( struct mount *mp, int flags,
|
||||
struct proc *p));
|
||||
static int nfs_unmount __P(( struct mount *mp, int mntflags,
|
||||
struct proc *p));
|
||||
static int nfs_root __P(( struct mount *mp, struct vnode **vpp));
|
||||
static int nfs_quotactl __P(( struct mount *mp, int cmds, uid_t uid,
|
||||
caddr_t arg, struct proc *p));
|
||||
static int nfs_statfs __P(( struct mount *mp, struct statfs *sbp,
|
||||
struct proc *p));
|
||||
static int nfs_sync __P(( struct mount *mp, int waitfor,
|
||||
struct ucred *cred, struct proc *p));
|
||||
static int nfs_vptofh __P(( struct vnode *vp, struct fid *fhp));
|
||||
static int nfs_fhtovp __P((struct mount *mp, struct fid *fhp,
|
||||
struct sockaddr *nam, struct vnode **vpp,
|
||||
int *exflagsp, struct ucred **credanonp));
|
||||
static int nfs_vget __P((struct mount *, ino_t, struct vnode **));
|
||||
|
||||
|
||||
/*
|
||||
* nfs vfs operations.
|
||||
*/
|
||||
static struct vfsops nfs_vfsops = {
|
||||
nfs_mount,
|
||||
nfs_start,
|
||||
vfs_stdstart,
|
||||
nfs_unmount,
|
||||
nfs_root,
|
||||
nfs_quotactl,
|
||||
vfs_stdquotactl,
|
||||
nfs_statfs,
|
||||
nfs_sync,
|
||||
nfs_vget,
|
||||
nfs_fhtovp,
|
||||
nfs_vptofh,
|
||||
vfs_stdvget,
|
||||
vfs_stdfhtovp, /* shouldn't happen */
|
||||
vfs_stdvptofh, /* shouldn't happen */
|
||||
nfs_init,
|
||||
nfs_uninit,
|
||||
};
|
||||
@ -1078,77 +1068,3 @@ nfs_sync(mp, waitfor, cred, p)
|
||||
return (allerror);
|
||||
}
|
||||
|
||||
/*
|
||||
* NFS flat namespace lookup.
|
||||
* Currently unsupported.
|
||||
*/
|
||||
/* ARGSUSED */
|
||||
static int
|
||||
nfs_vget(mp, ino, vpp)
|
||||
struct mount *mp;
|
||||
ino_t ino;
|
||||
struct vnode **vpp;
|
||||
{
|
||||
|
||||
return (EOPNOTSUPP);
|
||||
}
|
||||
|
||||
/*
|
||||
* At this point, this should never happen
|
||||
*/
|
||||
/* ARGSUSED */
|
||||
static int
|
||||
nfs_fhtovp(mp, fhp, nam, vpp, exflagsp, credanonp)
|
||||
register struct mount *mp;
|
||||
struct fid *fhp;
|
||||
struct sockaddr *nam;
|
||||
struct vnode **vpp;
|
||||
int *exflagsp;
|
||||
struct ucred **credanonp;
|
||||
{
|
||||
|
||||
return (EINVAL);
|
||||
}
|
||||
|
||||
/*
|
||||
* Vnode pointer to File handle, should never happen either
|
||||
*/
|
||||
/* ARGSUSED */
|
||||
static int
|
||||
nfs_vptofh(vp, fhp)
|
||||
struct vnode *vp;
|
||||
struct fid *fhp;
|
||||
{
|
||||
|
||||
return (EINVAL);
|
||||
}
|
||||
|
||||
/*
|
||||
* Vfs start routine, a no-op.
|
||||
*/
|
||||
/* ARGSUSED */
|
||||
static int
|
||||
nfs_start(mp, flags, p)
|
||||
struct mount *mp;
|
||||
int flags;
|
||||
struct proc *p;
|
||||
{
|
||||
|
||||
return (0);
|
||||
}
|
||||
|
||||
/*
|
||||
* Do operations associated with quotas, not supported
|
||||
*/
|
||||
/* ARGSUSED */
|
||||
static int
|
||||
nfs_quotactl(mp, cmd, uid, arg, p)
|
||||
struct mount *mp;
|
||||
int cmd;
|
||||
uid_t uid;
|
||||
caddr_t arg;
|
||||
struct proc *p;
|
||||
{
|
||||
|
||||
return (EOPNOTSUPP);
|
||||
}
|
||||
|
@ -71,26 +71,31 @@ static int ntfs_mount __P((struct mount *, char *, caddr_t,
|
||||
static int ntfs_mount __P((struct mount *, const char *, void *,
|
||||
struct nameidata *, struct proc *));
|
||||
#endif
|
||||
static int ntfs_quotactl __P((struct mount *, int, uid_t, caddr_t,
|
||||
struct proc *));
|
||||
static int ntfs_root __P((struct mount *, struct vnode **));
|
||||
static int ntfs_start __P((struct mount *, int, struct proc *));
|
||||
static int ntfs_statfs __P((struct mount *, struct statfs *,
|
||||
struct proc *));
|
||||
static int ntfs_sync __P((struct mount *, int, struct ucred *,
|
||||
struct proc *));
|
||||
static int ntfs_unmount __P((struct mount *, int, struct proc *));
|
||||
static int ntfs_vget __P((struct mount *mp, ino_t ino,
|
||||
struct vnode **vpp));
|
||||
static int ntfs_mountfs __P((register struct vnode *, struct mount *,
|
||||
struct ntfs_args *, struct proc *));
|
||||
|
||||
#if !defined(__FreeBSD__)
|
||||
static int ntfs_quotactl __P((struct mount *, int, uid_t, caddr_t,
|
||||
struct proc *));
|
||||
static int ntfs_start __P((struct mount *, int, struct proc *));
|
||||
static int ntfs_sync __P((struct mount *, int, struct ucred *,
|
||||
struct proc *));
|
||||
static int ntfs_vptofh __P((struct vnode *, struct fid *));
|
||||
#endif /* !defined(__FreeBSD__) */
|
||||
|
||||
#if defined(__FreeBSD__)
|
||||
static int ntfs_init __P((struct vfsconf *));
|
||||
#if 0 /* may be implemented at a later date */
|
||||
static int ntfs_fhtovp __P((struct mount *, struct fid *,
|
||||
struct sockaddr *, struct vnode **,
|
||||
int *, struct ucred **));
|
||||
#endif
|
||||
#elif defined(__NetBSD__)
|
||||
static void ntfs_init __P((void));
|
||||
static int ntfs_fhtovp __P((struct mount *, struct fid *,
|
||||
@ -589,6 +594,7 @@ ntfs_mountfs(devvp, mp, argsp, p)
|
||||
return (error);
|
||||
}
|
||||
|
||||
#if !defined(__FreeBSD__)
|
||||
static int
|
||||
ntfs_start (
|
||||
struct mount *mp,
|
||||
@ -597,6 +603,7 @@ ntfs_start (
|
||||
{
|
||||
return (0);
|
||||
}
|
||||
#endif /* !defined(__FreeBSD__) */
|
||||
|
||||
static int
|
||||
ntfs_unmount(
|
||||
@ -676,6 +683,7 @@ ntfs_root(
|
||||
return (0);
|
||||
}
|
||||
|
||||
#if !defined(__FreeBSD__)
|
||||
static int
|
||||
ntfs_quotactl (
|
||||
struct mount *mp,
|
||||
@ -687,6 +695,7 @@ ntfs_quotactl (
|
||||
printf("\nntfs_quotactl():\n");
|
||||
return EOPNOTSUPP;
|
||||
}
|
||||
#endif /* !defined(__FreeBSD__) */
|
||||
|
||||
int
|
||||
ntfs_calccfree(
|
||||
@ -762,6 +771,7 @@ ntfs_statfs(
|
||||
return (0);
|
||||
}
|
||||
|
||||
#if !defined(__FreeBSD__)
|
||||
static int
|
||||
ntfs_sync (
|
||||
struct mount *mp,
|
||||
@ -772,7 +782,9 @@ ntfs_sync (
|
||||
/*dprintf(("ntfs_sync():\n"));*/
|
||||
return (0);
|
||||
}
|
||||
#endif /* !defined(__FreeBSD__) */
|
||||
|
||||
#if !defined(__FreeBSD__)
|
||||
/*ARGSUSED*/
|
||||
static int
|
||||
ntfs_fhtovp(
|
||||
@ -808,6 +820,7 @@ ntfs_vptofh(
|
||||
printf("ntfs_vptofh():\n");
|
||||
return EOPNOTSUPP;
|
||||
}
|
||||
#endif /* !defined(__FreeBSD__) */
|
||||
|
||||
int
|
||||
ntfs_vgetex(
|
||||
@ -931,15 +944,15 @@ ntfs_vget(
|
||||
#if defined(__FreeBSD__)
|
||||
static struct vfsops ntfs_vfsops = {
|
||||
ntfs_mount,
|
||||
ntfs_start,
|
||||
vfs_stdstart,
|
||||
ntfs_unmount,
|
||||
ntfs_root,
|
||||
ntfs_quotactl,
|
||||
vfs_stdquotactl,
|
||||
ntfs_statfs,
|
||||
ntfs_sync,
|
||||
vfs_stdsync,
|
||||
ntfs_vget,
|
||||
ntfs_fhtovp,
|
||||
ntfs_vptofh,
|
||||
vfs_stdfhtovp,
|
||||
vfs_stdvptofh,
|
||||
ntfs_init,
|
||||
NULL
|
||||
};
|
||||
|
@ -393,6 +393,28 @@ extern CIRCLEQ_HEAD(mntlist, mount) mountlist; /* mounted filesystem list */
|
||||
extern struct simplelock mountlist_slock;
|
||||
extern struct nfs_public nfs_pub;
|
||||
|
||||
/*
|
||||
* Declarations for these vfs default operations are located in
|
||||
* 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_stdmount __P((struct mount *mp, char *path, caddr_t data,
|
||||
struct nameidata *ndp, struct proc *p));
|
||||
int vfs_stdstart __P((struct mount *mp, int flags, struct proc *p));
|
||||
int vfs_stdunmount __P((struct mount *mp, int mntflags, struct proc *p));
|
||||
int vfs_stdroot __P((struct mount *mp, struct vnode **vpp));
|
||||
int vfs_stdquotactl __P((struct mount *mp, int cmds, uid_t uid,
|
||||
caddr_t arg, struct proc *p));
|
||||
int vfs_stdstatfs __P((struct mount *mp, struct statfs *sbp, struct proc *p));
|
||||
int vfs_stdsync __P((struct mount *mp, int waitfor, struct ucred *cred,
|
||||
struct proc *p));
|
||||
int vfs_stdvget __P((struct mount *mp, ino_t ino, struct vnode **vpp));
|
||||
int vfs_stdfhtovp __P((struct mount *mp, struct fid *fhp, struct sockaddr *nam,
|
||||
struct vnode **vpp, int *exflagsp, struct ucred **credanonp));
|
||||
int vfs_stdvptofh __P((struct vnode *vp, struct fid *fhp));
|
||||
int vfs_stdinit __P((struct vfsconf *));
|
||||
int vfs_stduninit __P((struct vfsconf *));
|
||||
|
||||
#else /* !KERNEL */
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
|
Loading…
Reference in New Issue
Block a user