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>