Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 18 Jan 2002 01:13:13 +1100 (EST)
From:      Bruce Evans <bde@zeta.org.au>
To:        John Baldwin <jhb@FreeBSD.org>
Cc:        Alfred Perlstein <alfred@FreeBSD.org>, <cvs-all@FreeBSD.org>, <cvs-committers@FreeBSD.org>
Subject:   RE: cvs commit: src/sys/kern sys_generic.c
Message-ID:  <20020118010511.J1666-100000@gamplex.bde.org>
In-Reply-To: <XFMail.020116160036.jhb@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, 16 Jan 2002, John Baldwin wrote:

> On 16-Jan-02 Alfred Perlstein wrote:
> > alfred      2002/01/16 13:33:41 PST
> >
> >   Modified files:
> >     sys/kern             sys_generic.c
> >   Log:
> >   Fix giant handling in pwrite(2), I forgot to release it when finishing
> >   the syscall.
>
> Uh, this isn't correct.  fdrop() can call fo_close() can call down into VFS
> and do a vrele(), so fdrop() still needs Giant.  If you aren't holding Giant
> across fdrop() in a few places that might explain the vput(0x0) panics.

pread() has the same bug.

The organization of pwrite() isn't consistent with having the bug.  It
is still messed up to support having only one Giant unlock at the end.
pread() has been cleaned up, but this gets in the way of fixing it.

Bruce


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe cvs-all" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20020118010511.J1666-100000>