Re: mutex Giant not owned at /usr/src/sys/kern/vfs_vnops.c:120

From: Robert Watson <rwatson_at_freebsd.org>
Date: Mon, 30 Aug 2004 10:35:05 -0400 (EDT)
On Mon, 30 Aug 2004, Gleb Smirnoff wrote:

> B> > This causes Giant to be acquired in the event we enter the linker code
> B> > (and hence VFS code) via netgraph ngc_send().  It should be safe in this
> B> > context as we enter protocol send routines without mutexes held (i.e., why
> B> > we're also able to do blocking memory allocation here.)
> B> 
> B> please commit.
> 
> I think Giant should be acquired in linker_load_module(), and this way
> we will prevent this panic in other codepaths. For example in
> vfs_mount.c, when vfs will be Giant-free. Have I missed something?

Well, one of the primary reasons the linker needs Giant here is its use of
VFS.  I think for now I'd like to acquire Giant in netgraph so as to
expose the use of Giant in that piece of the network stack in the calling
code.  We might want to add GIANT_REQUIRED assertions in the linker code
to make sure we trigger assertions even if the linker doesn't hit VFS to
make sure potentially hitting Giant is caught.

Robert N M Watson             FreeBSD Core Team, TrustedBSD Projects
robert_at_fledge.watson.org      Principal Research Scientist, McAfee Research
Received on Mon Aug 30 2004 - 12:37:36 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:09 UTC