mirror of
https://git.FreeBSD.org/src.git
synced 2024-10-19 02:29:40 +00:00
Don't call malloc(..., M_WAITOK) at splnet(). Doing so is often
a mistake (since softnet interrupts may occur if malloc() waits), and doing it harmlessly but unnecessarily here interfered with detection of the mistaken cases.
This commit is contained in:
parent
a0f1e323d0
commit
638493a3c4
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=31391
@ -34,7 +34,7 @@
|
|||||||
* SUCH DAMAGE.
|
* SUCH DAMAGE.
|
||||||
*
|
*
|
||||||
* @(#)nfs_syscalls.c 8.5 (Berkeley) 3/30/95
|
* @(#)nfs_syscalls.c 8.5 (Berkeley) 3/30/95
|
||||||
* $Id: nfs_syscalls.c,v 1.31 1997/11/06 19:29:42 phk Exp $
|
* $Id: nfs_syscalls.c,v 1.32 1997/11/07 08:53:25 phk Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <sys/param.h>
|
#include <sys/param.h>
|
||||||
@ -464,15 +464,18 @@ nfssvc_nfsd(nsd, argp, p)
|
|||||||
cacherep = RC_DOIT;
|
cacherep = RC_DOIT;
|
||||||
writes_todo = 0;
|
writes_todo = 0;
|
||||||
#endif
|
#endif
|
||||||
s = splnet();
|
|
||||||
if (nfsd == (struct nfsd *)0) {
|
if (nfsd == (struct nfsd *)0) {
|
||||||
nsd->nsd_nfsd = nfsd = (struct nfsd *)
|
nfsd = (struct nfsd *)
|
||||||
malloc(sizeof (struct nfsd), M_NFSD, M_WAITOK);
|
malloc(sizeof (struct nfsd), M_NFSD, M_WAITOK);
|
||||||
bzero((caddr_t)nfsd, sizeof (struct nfsd));
|
bzero((caddr_t)nfsd, sizeof (struct nfsd));
|
||||||
|
s = splnet();
|
||||||
|
nsd->nsd_nfsd = nfsd;
|
||||||
nfsd->nfsd_procp = p;
|
nfsd->nfsd_procp = p;
|
||||||
TAILQ_INSERT_TAIL(&nfsd_head, nfsd, nfsd_chain);
|
TAILQ_INSERT_TAIL(&nfsd_head, nfsd, nfsd_chain);
|
||||||
nfs_numnfsd++;
|
nfs_numnfsd++;
|
||||||
}
|
} else
|
||||||
|
s = splnet();
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Loop getting rpc requests until SIGKILL.
|
* Loop getting rpc requests until SIGKILL.
|
||||||
*/
|
*/
|
||||||
|
@ -34,7 +34,7 @@
|
|||||||
* SUCH DAMAGE.
|
* SUCH DAMAGE.
|
||||||
*
|
*
|
||||||
* @(#)nfs_syscalls.c 8.5 (Berkeley) 3/30/95
|
* @(#)nfs_syscalls.c 8.5 (Berkeley) 3/30/95
|
||||||
* $Id: nfs_syscalls.c,v 1.31 1997/11/06 19:29:42 phk Exp $
|
* $Id: nfs_syscalls.c,v 1.32 1997/11/07 08:53:25 phk Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <sys/param.h>
|
#include <sys/param.h>
|
||||||
@ -464,15 +464,18 @@ nfssvc_nfsd(nsd, argp, p)
|
|||||||
cacherep = RC_DOIT;
|
cacherep = RC_DOIT;
|
||||||
writes_todo = 0;
|
writes_todo = 0;
|
||||||
#endif
|
#endif
|
||||||
s = splnet();
|
|
||||||
if (nfsd == (struct nfsd *)0) {
|
if (nfsd == (struct nfsd *)0) {
|
||||||
nsd->nsd_nfsd = nfsd = (struct nfsd *)
|
nfsd = (struct nfsd *)
|
||||||
malloc(sizeof (struct nfsd), M_NFSD, M_WAITOK);
|
malloc(sizeof (struct nfsd), M_NFSD, M_WAITOK);
|
||||||
bzero((caddr_t)nfsd, sizeof (struct nfsd));
|
bzero((caddr_t)nfsd, sizeof (struct nfsd));
|
||||||
|
s = splnet();
|
||||||
|
nsd->nsd_nfsd = nfsd;
|
||||||
nfsd->nfsd_procp = p;
|
nfsd->nfsd_procp = p;
|
||||||
TAILQ_INSERT_TAIL(&nfsd_head, nfsd, nfsd_chain);
|
TAILQ_INSERT_TAIL(&nfsd_head, nfsd, nfsd_chain);
|
||||||
nfs_numnfsd++;
|
nfs_numnfsd++;
|
||||||
}
|
} else
|
||||||
|
s = splnet();
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Loop getting rpc requests until SIGKILL.
|
* Loop getting rpc requests until SIGKILL.
|
||||||
*/
|
*/
|
||||||
|
@ -34,7 +34,7 @@
|
|||||||
* SUCH DAMAGE.
|
* SUCH DAMAGE.
|
||||||
*
|
*
|
||||||
* @(#)nfs_syscalls.c 8.5 (Berkeley) 3/30/95
|
* @(#)nfs_syscalls.c 8.5 (Berkeley) 3/30/95
|
||||||
* $Id: nfs_syscalls.c,v 1.31 1997/11/06 19:29:42 phk Exp $
|
* $Id: nfs_syscalls.c,v 1.32 1997/11/07 08:53:25 phk Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <sys/param.h>
|
#include <sys/param.h>
|
||||||
@ -464,15 +464,18 @@ nfssvc_nfsd(nsd, argp, p)
|
|||||||
cacherep = RC_DOIT;
|
cacherep = RC_DOIT;
|
||||||
writes_todo = 0;
|
writes_todo = 0;
|
||||||
#endif
|
#endif
|
||||||
s = splnet();
|
|
||||||
if (nfsd == (struct nfsd *)0) {
|
if (nfsd == (struct nfsd *)0) {
|
||||||
nsd->nsd_nfsd = nfsd = (struct nfsd *)
|
nfsd = (struct nfsd *)
|
||||||
malloc(sizeof (struct nfsd), M_NFSD, M_WAITOK);
|
malloc(sizeof (struct nfsd), M_NFSD, M_WAITOK);
|
||||||
bzero((caddr_t)nfsd, sizeof (struct nfsd));
|
bzero((caddr_t)nfsd, sizeof (struct nfsd));
|
||||||
|
s = splnet();
|
||||||
|
nsd->nsd_nfsd = nfsd;
|
||||||
nfsd->nfsd_procp = p;
|
nfsd->nfsd_procp = p;
|
||||||
TAILQ_INSERT_TAIL(&nfsd_head, nfsd, nfsd_chain);
|
TAILQ_INSERT_TAIL(&nfsd_head, nfsd, nfsd_chain);
|
||||||
nfs_numnfsd++;
|
nfs_numnfsd++;
|
||||||
}
|
} else
|
||||||
|
s = splnet();
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Loop getting rpc requests until SIGKILL.
|
* Loop getting rpc requests until SIGKILL.
|
||||||
*/
|
*/
|
||||||
|
Loading…
Reference in New Issue
Block a user