On Fri, Feb 08, 2008 at 03:54:14PM -0500, Jeff Layton wrote:
> Interesting. It's not clear me why the underlying filesystem would make
> any difference there. Though now that I look, it looks like fl_grant
> really only gets called from dlm code, and that queues up the block for
> an immediate grant callback attempt. So perhaps that's the reason.

The asynchronous locking interface does something slightly cheesy for
blocking locks--instead of waiting for the filesystem to respond, it
just sends back a deny immediately (even if the lock might actually be
available), then responds later with a granted message when it discovers
it's available.

That works, but we should make it just wait to send the reply to the
original lock request until we've got a real answer, as we do for
nonblocking lock requests.  And in fact someone submitted a patch to do
that--I just haven't gotten the time to review it.  Urp.

So anyway the effect is that on ext3 this particular lock wouldn't have
required a grant reply, whereas on gfs2 it does.

Of course, what this means is that we'd hit the same problem on ext3 too
if the lock request did in fact legitimately block.  So grant callbacks
probably have never worked on ext3 over the loopback interface either.
Oops!

I bet nobody's ever noticed because we manage to recover by retrying the
lock after it's available (whereas in the gfs2 case the retry hits the
same problem).  So in practice for ext3 this probably just means
blocking lock requests take a lot longer over loopback then they would
otherwise.  And probably the only people that care about nlm performance
don't usually do local mounts like that.

--b.
-
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to