locking questions (regarding file systems)

Eric Anderson anderson at centtech.com
Tue Aug 1 04:26:54 UTC 2006


Hi GEOMers,

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);

Any help would be greatly appreciated!

Eric



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


More information about the freebsd-geom mailing list