Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 2 Aug 2006 23:14:29 -0700 (PDT)
From:      "R. B. Riddick" <arne_woerner@yahoo.com>
To:        Eric Anderson <anderson@centtech.com>
Cc:        freebsd-fs@freebsd.org
Subject:   Re: locking questions (regarding file systems)
Message-ID:  <20060803061429.33043.qmail@web30307.mail.mud.yahoo.com>
In-Reply-To: <44D176AF.8020300@centtech.com>

next in thread | previous in thread | raw e-mail | index | archive | help
--- Eric Anderson <anderson@centtech.com> wrote:
> # here use_count is 1
> 	error = vflush(mp, 1, flags, td);
> 	if (error)
> 		return (error);
> 		
> 	DROP_GIANT();
> 	g_topology_lock();
> # this is where the use_count is now zero, and it blocks
> 	g_vfs_close(cp, td);
> 	g_topology_unlock();
> 	PICKUP_GIANT();
> 	vrele(devvp);
> 	
> Is it blocking because the use_count is already 0?  Is the vflush 
> breaking things?
> 
>From the man page of vflush() I would guess, that u call it too early or
unnecessarily...

My feeling says: Open & Close it... ;-)

Or did u read a tutorial, that said u should do vflush() and vrele()?
I personally find that both calls should be done in the close() function...

> Actually, I misinformed you earlier - I can't actually unmount, because 
> it hangs during the first unmount.  It will only unmount successfully if 
> I remove the block above (the DROP_GIANT down to PICKUP_GIANT).
>
Hmm... Did u try to run without vflush() and vrele()? :-)

-Arne


__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 



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