Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 2 Aug 2006 12:34:08 -0700 (PDT)
From:      "R. B. Riddick" <arne_woerner@yahoo.com>
To:        Eric Anderson <anderson@centtech.com>, freebsd-fs@freebsd.org
Subject:   Re: locking questions (regarding file systems)
Message-ID:  <20060802193408.47760.qmail@web30301.mail.mud.yahoo.com>
In-Reply-To: <44D0F6E3.7080908@centtech.com>

next in thread | previous in thread | raw e-mail | index | archive | help
--- Eric Anderson <anderson@centtech.com> wrote:
> 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);
> 

So the first un-mount works fine?
And the second un-mount wedges _before_ g_vfs_close?

I cannot find anything really suspicious in ur code...

Just 2 thoughts:

1. Do we really hold GIANT, when we mount and un-mount something?

2. R u sure, that we need vrele()? I mean: Why doesn't g_vfs_close() call
vrele(), if g_vfs_open() increases that use-count variable? Can u print the
use-count variable in the beginning and the end of the mount/un-mount
functions?

-Arne


__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 



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