mutex Giant not owned at /usr/src/sys/kern/vfs_vnops.c:120
Gleb Smirnoff
glebius at freebsd.org
Mon Aug 30 07:40:44 PDT 2004
On Mon, Aug 30, 2004 at 10:35:05AM -0400, Robert Watson wrote:
R> > B> > This causes Giant to be acquired in the event we enter the linker code
R> > B> > (and hence VFS code) via netgraph ngc_send(). It should be safe in this
R> > B> > context as we enter protocol send routines without mutexes held (i.e., why
R> > B> > we're also able to do blocking memory allocation here.)
R> > B>
R> > B> please commit.
R> >
R> > I think Giant should be acquired in linker_load_module(), and this way
R> > we will prevent this panic in other codepaths. For example in
R> > vfs_mount.c, when vfs will be Giant-free. Have I missed something?
R>
R> Well, one of the primary reasons the linker needs Giant here is its use of
R> VFS. I think for now I'd like to acquire Giant in netgraph so as to
R> expose the use of Giant in that piece of the network stack in the calling
R> code. We might want to add GIANT_REQUIRED assertions in the linker code
R> to make sure we trigger assertions even if the linker doesn't hit VFS to
R> make sure potentially hitting Giant is caught.
OK. Then commit it pls.
--
Totus tuus, Glebius.
GLEBIUS-RIPN GLEB-RIPE
More information about the freebsd-current
mailing list