]> git.decadent.org.uk Git - nfs-utils.git/commit
sm-notify: Send fully-qualified and unqualified mon_names
authorChuck Lever <chuck.lever@oracle.com>
Fri, 19 Mar 2010 20:03:45 +0000 (16:03 -0400)
committerSteve Dickson <steved@redhat.com>
Fri, 19 Mar 2010 20:03:45 +0000 (16:03 -0400)
commitbaa41b2c78e796540c45692ea35214f7090a78cb
treefda70a70bfa402fd68604f598f7d8b4fe3575eae
parent900df0e7c0b9006d72d8459b30dc2cd69ce495a5
sm-notify: Send fully-qualified and unqualified mon_names

During any file locking interaction between an NFS client and server,
the client tells the server what hostname it will use as the mon_name
argument of the SM_NOTIFY request sent by the client when it reboots.
This is the "caller_name" argument of an NLMPROC_LOCK request.

The server, however, never tells the client what mon_name argument
it will use when sending an SM_NOTIFY request.  In order to recognize
the server, clients usually guess what mon_name the server might
send, by using the server hostname provided by the user on the mount
command line.

Frequently, the user provides an unqualified server name on the mount
command.  The server might then call the client back with a fully
qualified domain name, which might not match in some cases.

Solaris, and perhaps other implementations, attempt to mitigate this
problem by sending two SM_NOTIFY requests to each peer: one with an
unqualified mon_name argument, and one with a fully qualified mon_name.

Implement such a scheme for sm-notify.

Since my_name is almost always the fully-qualified hostname associated
with the local system, just wiping the left-most '.' in the my_name
argument and sending another SM_NOTIFY is nearly always sufficient.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Steve Dickson <steved@redhat.com>
utils/statd/sm-notify.c