[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: [Cluster-devel] [GFS2] Put back semaphore to avoid umount problem

On Fri, Jan 26, 2007 at 10:36:58AM +0000, Steven Whitehouse wrote:
> Hi,
> Hmm. This doesn't seem to be quite the thing:

Yep, glock_put is being called from within invalidate_inodes, so we're
recursively taking the new sem.  Here's the original comment I added
describing the problem:

/* invalidate_inodes() requires that the sb inodes list
   not change, but an async completion callback for an
   unlock can occur which does glock_put() which
   can call iput() which will change the sb inodes list.
   invalidate_inodes_mutex prevents glock_put()'s during
   an invalidate_inodes() */

So, we're trying to prevent async completions from mucking with the inodes
while we're in invalidate_inodes.  Perhaps we could take the new read sem
inside gfs2_glock_cb which still blocks async completions when we need to
but not in a code path that's called from elsewhere.

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]