[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
patches to move sys_getfh to vfs_syscalls.c?
- To: tech@openbsd.org
- Subject: patches to move sys_getfh to vfs_syscalls.c?
- From: Assar Westerlund <assar@sics.se>
- Date: 01 Feb 2000 06:19:58 +0100
- User-Agent: Gnus/5.070098 (Pterodactyl Gnus v0.98) Emacs/20.4
Here are some patches to move sys_getfh into vfs_syscalls.c and always
have the system call. Any comments/objections?
/assar
Index: kern/syscalls.master
===================================================================
RCS file: /cvs/src/sys/kern/syscalls.master,v
retrieving revision 1.37
diff -u -w -r1.37 syscalls.master
--- kern/syscalls.master 1999/06/07 07:17:42 1.37
+++ kern/syscalls.master 2000/02/01 04:45:14
@@ -295,11 +295,7 @@
158 STD { int sys_ofstatfs(int fd, struct ostatfs *buf); }
159 UNIMPL
160 UNIMPL
-#if defined(NFSCLIENT) || defined(NFSSERVER)
161 STD { int sys_getfh(const char *fname, fhandle_t *fhp); }
-#else
-161 UNIMPL getfh
-#endif
162 COMPAT_09 { int sys_getdomainname(char *domainname, int len); } \
ogetdomainname
163 COMPAT_09 { int sys_setdomainname(char *domainname, int len); } \
Index: kern/vfs_syscalls.c
===================================================================
RCS file: /cvs/src/sys/kern/vfs_syscalls.c,v
retrieving revision 1.61
diff -u -w -r1.61 vfs_syscalls.c
--- kern/vfs_syscalls.c 2000/02/01 04:03:14 1.61
+++ kern/vfs_syscalls.c 2000/02/01 04:45:25
@@ -948,6 +948,46 @@
}
/*
+ * Get file handle system call
+ */
+int
+sys_getfh(p, v, retval)
+ struct proc *p;
+ register void *v;
+ register_t *retval;
+{
+ register struct sys_getfh_args /* {
+ syscallarg(char *) fname;
+ syscallarg(fhandle_t *) fhp;
+ } */ *uap = v;
+ register struct vnode *vp;
+ fhandle_t fh;
+ int error;
+ struct nameidata nd;
+
+ /*
+ * Must be super user
+ */
+ error = suser(p->p_ucred, &p->p_acflag);
+ if(error)
+ return (error);
+ NDINIT(&nd, LOOKUP, FOLLOW | LOCKLEAF, UIO_USERSPACE,
+ SCARG(uap, fname), p);
+ error = namei(&nd);
+ if (error)
+ return (error);
+ vp = nd.ni_vp;
+ bzero((caddr_t)&fh, sizeof(fh));
+ fh.fh_fsid = vp->v_mount->mnt_stat.f_fsid;
+ error = VFS_VPTOFH(vp, &fh.fh_fid);
+ vput(vp);
+ if (error)
+ return (error);
+ error = copyout((caddr_t)&fh, (caddr_t)SCARG(uap, fhp), sizeof (fh));
+ return (error);
+}
+
+/*
* Create a special file.
*/
/* ARGSUSED */
Index: nfs/nfs_syscalls.c
===================================================================
RCS file: /cvs/src/sys/nfs/nfs_syscalls.c,v
retrieving revision 1.12
diff -u -w -r1.12 nfs_syscalls.c
--- nfs/nfs_syscalls.c 1997/12/02 16:57:58 1.12
+++ nfs/nfs_syscalls.c 2000/02/01 04:45:30
@@ -114,48 +114,7 @@
/*
* NFS server system calls
- * getfh() lives here too, but maybe should move to kern/vfs_syscalls.c
*/
-
-/*
- * Get file handle system call
- */
-int
-sys_getfh(p, v, retval)
- struct proc *p;
- register void *v;
- register_t *retval;
-{
- register struct sys_getfh_args /* {
- syscallarg(char *) fname;
- syscallarg(fhandle_t *) fhp;
- } */ *uap = v;
- register struct vnode *vp;
- fhandle_t fh;
- int error;
- struct nameidata nd;
-
- /*
- * Must be super user
- */
- error = suser(p->p_ucred, &p->p_acflag);
- if(error)
- return (error);
- NDINIT(&nd, LOOKUP, FOLLOW | LOCKLEAF, UIO_USERSPACE,
- SCARG(uap, fname), p);
- error = namei(&nd);
- if (error)
- return (error);
- vp = nd.ni_vp;
- bzero((caddr_t)&fh, sizeof(fh));
- fh.fh_fsid = vp->v_mount->mnt_stat.f_fsid;
- error = VFS_VPTOFH(vp, &fh.fh_fid);
- vput(vp);
- if (error)
- return (error);
- error = copyout((caddr_t)&fh, (caddr_t)SCARG(uap, fhp), sizeof (fh));
- return (error);
-}
/*
* Nfs server pseudo system call for the nfsd's
Index: nfs/nfs_var.h
===================================================================
RCS file: /cvs/src/sys/nfs/nfs_var.h,v
retrieving revision 1.9
diff -u -w -r1.9 nfs_var.h
--- nfs/nfs_var.h 1998/08/06 19:34:59 1.9
+++ nfs/nfs_var.h 2000/02/01 04:45:32
@@ -298,7 +298,6 @@
void nfsrv_setcred __P((struct ucred *, struct ucred *));
/* nfs_syscalls.c */
-int sys_getfh __P((struct proc *, void *, register_t *));
int sys_nfssvc __P((struct proc *, void *, register_t *));
int nfssvc_addsock __P((struct file *, struct mbuf *));
int nfssvc_nfsd __P((struct nfsd_srvargs *, caddr_t, struct proc *));
Index: kern/init_sysent.c
===================================================================
RCS file: /cvs/src/sys/kern/init_sysent.c,v
retrieving revision 1.41
diff -u -w -r1.41 init_sysent.c
--- kern/init_sysent.c 1999/08/08 00:32:22 1.41
+++ kern/init_sysent.c 2000/02/01 05:17:04
@@ -372,13 +372,8 @@
sys_nosys }, /* 159 = unimplemented */
{ 0, 0,
sys_nosys }, /* 160 = unimplemented */
-#if defined(NFSCLIENT) || defined(NFSSERVER)
{ 2, s(struct sys_getfh_args),
sys_getfh }, /* 161 = getfh */
-#else
- { 0, 0,
- sys_nosys }, /* 161 = unimplemented getfh */
-#endif
{ 2, s(struct compat_09_sys_getdomainname_args),
compat_09(sys_getdomainname) }, /* 162 = compat_09 ogetdomainname */
{ 2, s(struct compat_09_sys_setdomainname_args),
Index: kern/syscalls.c
===================================================================
RCS file: /cvs/src/sys/kern/syscalls.c,v
retrieving revision 1.41
diff -u -w -r1.41 syscalls.c
--- kern/syscalls.c 1999/08/08 00:32:22 1.41
+++ kern/syscalls.c 2000/02/01 05:17:04
@@ -181,11 +181,7 @@
"ofstatfs", /* 158 = ofstatfs */
"#159 (unimplemented)", /* 159 = unimplemented */
"#160 (unimplemented)", /* 160 = unimplemented */
-#if defined(NFSCLIENT) || defined(NFSSERVER)
"getfh", /* 161 = getfh */
-#else
- "#161 (unimplemented getfh)", /* 161 = unimplemented getfh */
-#endif
"compat_09_ogetdomainname", /* 162 = compat_09 ogetdomainname */
"compat_09_osetdomainname", /* 163 = compat_09 osetdomainname */
"compat_09_ouname", /* 164 = compat_09 ouname */
Index: sys/syscallargs.h
===================================================================
RCS file: /cvs/src/sys/sys/syscallargs.h,v
retrieving revision 1.41
diff -u -w -r1.41 syscallargs.h
--- sys/syscallargs.h 1999/08/08 00:32:22 1.41
+++ sys/syscallargs.h 2000/02/01 05:17:08
@@ -1221,10 +1221,7 @@
int compat_43_sys_getdirentries __P((struct proc *, void *, register_t *));
int sys_ostatfs __P((struct proc *, void *, register_t *));
int sys_ofstatfs __P((struct proc *, void *, register_t *));
-#if defined(NFSCLIENT) || defined(NFSSERVER)
int sys_getfh __P((struct proc *, void *, register_t *));
-#else
-#endif
int compat_09_sys_getdomainname __P((struct proc *, void *, register_t *));
int compat_09_sys_setdomainname __P((struct proc *, void *, register_t *));
int compat_09_sys_uname __P((struct proc *, void *, register_t *));