Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 02 Aug 2006 23:36:12 -0500
From:      Eric Anderson <anderson@centtech.com>
To:        freebsd-fs@freebsd.org
Subject:   Re: locking questions (regarding file systems)
Message-ID:  <44D17D3C.80406@centtech.com>

next in thread | raw e-mail | index | archive | help
> On Wed, 02 Aug 2006 14:02:59 -0500
> Eric Anderson <anderson at centtech.com> mentioned:
> 
>> Hello everyone,
>> (resend from a post to the -geom list, which I received no replies)
>> 
>> I'm writing a file system (read-only), and I need to do some GEOM
>> related locking.  I can mount/unmount the filesystem on a vnode backed
>> md disk, but I can't re-mount on that device nor can I get rid (mdconfig
>> -d) of it.  It appears to be wedged in some kind of locking.
>> 
>> Here's basically what I do:
>> in the mount function for the FS, I do something like this:
>> 
>> DROP_GIANT();
>> g_topology_lock();
>> error = g_vfs_open(devvp, &cp, "fsname", 0);
>> g_topology_unlock();
>> PICKUP_GIANT();
>> 
>> 
>> What is needed in my unmount function to release those locks?  I've
>> tried some combinations of things, like:
>> 
>> 
>> DROP_GIANT();
>> g_topology_lock();
>> # wedges here
>> g_vfs_close(cp, td);
>> g_topology_unlock();
>> PICKUP_GIANT();
>> vrele(devvp);
>> 
>> How can I debug this and find out what is blocking it?
>> 
>> Any help would be greatly appreciated!
>> 
>> Eric
>> 
>> 
>> 
> 
> It seems that device or geom isn't unlocked. Do you call VOP_UNLOCK(devvp)
> after g_vfs_open()?

I was not calling VOP_UNLOCK, but have added it, and it makes no difference.

> You can enable geom locks debugging by manipulation sys.kern.geom.debug
> values. 

That didn't seem to print anything.

Eric




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



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