On Feb 12, 2009, at 2:10 PM, Trond Myklebust wrote:
On Thu, 2009-02-12 at 19:29 +0100, Frank van Maarseveen wrote:
On Thu, Feb 12, 2009 at 01:17:27PM -0500, Trond Myklebust wrote:
On Thu, 2009-02-12 at 16:36 +0100, Frank van Maarseveen wrote:
A little theorizing:
If the unlock of a yet unrecovered lock has failed up to that
point then
the client sure must remember the lock somehow. That might
explain the
secondary error when a conflicting lock is granted by the server.
Sorry, but that doesn't hold water. The client will release the VFS
'mirror' of the lock before it attempts to unlock. Otherwise, you
could
have some nasty races between the unlock thread and the recovery
thread...
Besides, the granted callback handler on the client only checks
the list
of blocked locks for a match.
ok, then we have more than one NLM bug to resolve.
Oh, bugger, I know what this is... It's the same thing that
happened to
the NFSv4 callback server. If you compile with CONFIG_IPV6 or
CONFIG_IPV6_MODULE enabled, and also set
CONFIG_SUNRPC_REGISTER_V4, then
the NLM server will listen on an IPv6 socket, and so the RPC request
come in with their IPv4 address mapped into the IPv6 namespace.
Nope:
$ zgrep IPV6 /proc/config.gz
# CONFIG_IPV6 is not set
$ zgrep SUNRPC /proc/config.gz
CONFIG_SUNRPC=y
CONFIG_SUNRPC_GSS=y
# CONFIG_SUNRPC_BIND34 is not set
Sorry, yes... 2.6.27.x should be OK. The lockd v4mapped addresses
bug is
specific to 2.6.29. Chuck, are you planning on fixing this before
2.6.29-final comes out?
I wasn't sure exactly where the compared addresses came from. I had
assumed that they all came through the listener, so we wouldn't need
this kind of translation. It shouldn't be difficult to map addresses
passed in via nlmclnt_init() to AF_INET6.
But this is the kind of thing that makes "falling back" to an AF_INET
listener a little challenging. We will have to record what flavor the
listener is and do a translation depending on what listener family was
actually created.
--
Chuck Lever
chuck[dot]lever[at]oracle[dot]com
--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html