From owner-freebsd-fs@FreeBSD.ORG Wed Aug 2 19:02:48 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 0950416A4DE for ; Wed, 2 Aug 2006 19:02:48 +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 833D443D58 for ; Wed, 2 Aug 2006 19:02:43 +0000 (GMT) (envelope-from anderson@centtech.com) Received: from [10.177.171.220] (neutrino.centtech.com [10.177.171.220]) by mh1.centtech.com (8.13.1/8.13.1) with ESMTP id k72J2gLo098280 for ; Wed, 2 Aug 2006 14:02:42 -0500 (CDT) (envelope-from anderson@centtech.com) Message-ID: <44D0F6E3.7080908@centtech.com> Date: Wed, 02 Aug 2006 14:02:59 -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/1632/Wed Aug 2 09:46:05 2006 on mh1.centtech.com X-Virus-Status: Clean Subject: 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: Wed, 02 Aug 2006 19:02:48 -0000 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 -- ------------------------------------------------------------------------ Eric Anderson Sr. Systems Administrator Centaur Technology Anything that works is better than anything that doesn't. ------------------------------------------------------------------------ _______________________________________________ freebsd-geom@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-geom To unsubscribe, send any mail to "freebsd-geom-unsubscribe@freebsd.org" -- ------------------------------------------------------------------------ Eric Anderson Sr. Systems Administrator Centaur Technology Anything that works is better than anything that doesn't. ------------------------------------------------------------------------