locking questions (regarding file systems)

Eric Anderson anderson at centtech.com
Thu Aug 3 19:51:20 UTC 2006


On 08/03/06 14:36, R. B. Riddick wrote:
> --- Eric Anderson <anderson at centtech.com> wrote:
>> On 08/03/06 01:14, R. B. Riddick wrote:
>>> --- Eric Anderson <anderson at 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... ;-)
>>>
>>> Hmm... Did u try to run without vflush() and vrele()? :-)
>> I've tried getting rid of the vrele and vflush, and that doesn't help.
>>
> Hmm... So the g_vfs_close() always deadlocks with and without vflush()?
> That is strange... I mean: When I open a regular file, I can close it...

Correct..

> Did u try to call g_vfs_close() immediately after the g_vfs_open()?

I just did, and looks like the g_vfs_close directly after the g_vfs_open 
block (I copy-pasted) works ok.  When unmounting, it then panics on 
g_vfs_close, probably because it's already closed from before.

>> Any other ideas?  I have to be missing something very simple here..
>>
> Yes. Most likely it is something simple and orthogonal, because: Humans often
> have similar ideas of "simple"... ;-)
> 
> -Arne
> 
> 
> __________________________________________________
> Do You Yahoo!?
> Tired of spam?  Yahoo! Mail has the best spam protection around 
> http://mail.yahoo.com 


-- 
------------------------------------------------------------------------
Eric Anderson        Sr. Systems Administrator        Centaur Technology
Anything that works is better than anything that doesn't.
------------------------------------------------------------------------


More information about the freebsd-fs mailing list