Date: Mon, 13 Dec 1999 05:46:19 +0100 (CET) From: assar@stacken.kth.se To: FreeBSD-gnats-submit@freebsd.org Cc: assar@stacken.kth.se, culverk@culverk.student.umd.edu Subject: kern/15452: getfh syscall is only installed with NFS Message-ID: <199912130446.FAA01587@mulet.e.kth.se>
index | next in thread | raw e-mail
>Number: 15452
>Category: kern
>Synopsis: getfh syscall is only installed with NFS
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: freebsd-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Sun Dec 12 20:50:01 PST 1999
>Closed-Date:
>Last-Modified:
>Originator: Assar Westerlund
>Release: FreeBSD 4.0-CURRENT i386
>Organization:
none
>Environment:
-current
>Description:
The function for the getfh system call is in kern/vfs_syscalls.c and
is always compiled it (and rather small), but the system call is only
added to the table (`sysent') in the NFS code. This doesn't make
sense, why not always have the system call? The other file handle
system calls (fhopen et al) are always included but they're kind of
non-useful with getfh.
>How-To-Repeat:
build a kernel with NFS_NOSERVER or without NFS. call getfh().
>Fix:
--- kern/syscalls.master.orig Mon Nov 22 12:42:21 1999
+++ kern/syscalls.master Mon Dec 13 05:37:08 1999
@@ -248,7 +248,7 @@
159 UNIMPL NOHIDE nosys
160 UNIMPL NOHIDE nosys
; 161 is initialized by the NFS code, if present.
-161 NOIMPL BSD { int getfh(char *fname, struct fhandle *fhp); }
+161 STD BSD { int getfh(char *fname, struct fhandle *fhp); }
162 STD BSD { int getdomainname(char *domainname, int len); }
163 STD BSD { int setdomainname(char *domainname, int len); }
164 STD BSD { int uname(struct utsname *name); }
--- nfs/nfs_subs.c.orig Mon Dec 13 05:38:28 1999
+++ nfs/nfs_subs.c Mon Dec 13 05:39:00 1999
@@ -117,8 +117,6 @@
#ifndef NFS_NOSERVER
static vop_t *nfs_prev_vop_lease_check;
-static int nfs_prev_getfh_sy_narg;
-static sy_call_t *nfs_prev_getfh_sy_call;
/*
* Mapping of old NFS Version 2 RPC numbers to generic numbers.
@@ -558,8 +556,6 @@
extern struct nfsnodehashhead *nfsnodehashtbl;
extern u_long nfsnodehash;
-struct getfh_args;
-extern int getfh(struct proc *, struct getfh_args *, int *);
struct nfssvc_args;
extern int nfssvc(struct proc *, struct nfssvc_args *, int *);
@@ -1184,12 +1180,6 @@
sysent[SYS_nfssvc].sy_narg = 2;
nfs_prev_nfssvc_sy_call = sysent[SYS_nfssvc].sy_call;
sysent[SYS_nfssvc].sy_call = (sy_call_t *)nfssvc;
-#ifndef NFS_NOSERVER
- nfs_prev_getfh_sy_narg = sysent[SYS_getfh].sy_narg;
- sysent[SYS_getfh].sy_narg = 2;
- nfs_prev_getfh_sy_call = sysent[SYS_getfh].sy_call;
- sysent[SYS_getfh].sy_call = (sy_call_t *)getfh;
-#endif
nfs_pbuf_freecnt = nswbuf / 2 + 1;
@@ -1209,10 +1199,6 @@
lease_updatetime = nfs_prev_lease_updatetime;
sysent[SYS_nfssvc].sy_narg = nfs_prev_nfssvc_sy_narg;
sysent[SYS_nfssvc].sy_call = nfs_prev_nfssvc_sy_call;
-#ifndef NFS_NOSERVER
- sysent[SYS_getfh].sy_narg = nfs_prev_getfh_sy_narg;
- sysent[SYS_getfh].sy_call = nfs_prev_getfh_sy_call;
-#endif
return (0);
}
>Release-Note:
>Audit-Trail:
>Unformatted:
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message
home |
help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199912130446.FAA01587>
