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

Reply via email to