From owner-freebsd-fs@FreeBSD.ORG Thu Aug 3 04:35:56 2006 Return-Path: X-Original-To: freebsd-fs@freebsd.org Delivered-To: freebsd-fs@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id C48D116A4DE for ; Thu, 3 Aug 2006 04:35:56 +0000 (UTC) (envelope-from anderson@centtech.com) Received: from mh1.centtech.com (moat3.centtech.com [207.200.51.50]) by mx1.FreeBSD.org (Postfix) with ESMTP id 288C743D5A for ; Thu, 3 Aug 2006 04:35:56 +0000 (GMT) (envelope-from anderson@centtech.com) Received: from [192.168.42.24] (andersonbox4.centtech.com [192.168.42.24]) by mh1.centtech.com (8.13.1/8.13.1) with ESMTP id k734Zt3F090709 for ; Wed, 2 Aug 2006 23:35:55 -0500 (CDT) (envelope-from anderson@centtech.com) Message-ID: <44D17D3C.80406@centtech.com> Date: Wed, 02 Aug 2006 23:36:12 -0500 From: Eric Anderson User-Agent: Thunderbird 1.5.0.5 (X11/20060802) MIME-Version: 1.0 To: freebsd-fs@freebsd.org Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Scanned: ClamAV 0.87.1/1634/Wed Aug 2 17:32:49 2006 on mh1.centtech.com X-Virus-Status: Clean Subject: Re: locking questions (regarding file systems) X-BeenThere: freebsd-fs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Filesystems List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 03 Aug 2006 04:35:56 -0000 > On Wed, 02 Aug 2006 14:02:59 -0500 > Eric Anderson 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. ------------------------------------------------------------------------