On Mon, 18 Jan 1999, Mike Smith wrote: > > > So malloc() will generally not return NULL even in low memory > > > situations > > > unless the KVM map fills up, which isn't supposed to happen but can in > > > certain severe circumstances. Callers should therefore check for > > > NULL. > > > > why not just put it in a loop and block on lbolt? > > (or call panic) > > Because you shouldn't panic unless there's no alternative. Panicking > on resource starvation is just totally lame.
And what's wrong with spinning inside malloc until the resources are free? There are places that architecturally require M_WAITOK to not return NULL. Look at the void () functions that call malloc/MALLOC. Also, commit the attached patch; it was OKed by Bruce to disallow this, but he seems to forget to commit it. > > -- > \\ Sometimes you're ahead, \\ Mike Smith > \\ sometimes you're behind. \\ m...@smith.net.au > \\ The race is long, and in the \\ msm...@freebsd.org > \\ end it's only with yourself. \\ msm...@cdrom.com > > > > To Unsubscribe: send mail to majord...@freebsd.org > with "unsubscribe freebsd-current" in the body of the message > Brian Feldman _ __ ___ ___ ___ gr...@unixhelp.org _ __ ___ | _ ) __| \ http://www.freebsd.org/ _ __ ___ ____ | _ \__ \ |) | FreeBSD: The Power to Serve! _ __ ___ ____ _____ |___/___/___/ --- src/sys/kern/vfs_syscalls.c.orig Fri Dec 25 22:27:21 1998 +++ src/sys/kern/vfs_syscalls.c Fri Dec 25 22:28:12 1998 @@ -2909,6 +2909,10 @@ if (error = namei(&nd)) return (error); vp = nd.ni_vp; + if (vp->v_type == VFIFO) { + error = EINVAL; + goto out; + } if (error = VOP_GETATTR(vp, &vattr, p->p_ucred, p)) goto out; if (p->p_ucred->cr_uid != vattr.va_uid && To Unsubscribe: send mail to majord...@freebsd.org with "unsubscribe freebsd-current" in the body of the message