diff options
author | Chuck Lever <chuck.lever@oracle.com> | 2011-09-19 14:20:25 -0400 |
---|---|---|
committer | Steve Dickson <steved@redhat.com> | 2011-09-20 07:33:03 -0400 |
commit | 445082926141a116c9e93f9ccdd81039c5a2841b (patch) | |
tree | d78b3a5249310aaea8ab2322ca5915c884fb9d24 | |
parent | a96f3700e4c0bb1b0ea92530cc4a48b8577eeb8f (diff) | |
download | nfs-utils-445082926141a116c9e93f9ccdd81039c5a2841b.tar.gz nfs-utils-445082926141a116c9e93f9ccdd81039c5a2841b.tar.xz nfs-utils-445082926141a116c9e93f9ccdd81039c5a2841b.zip |
sm-notify: Avoid extra rpcbind queries
The logic in notify_host() watches the host->retries counter to see if
progress is not being made. If progress stalls, notify_host() tries
another IP address. This means sm-notify will generate a fresh
rpcbind query.
After an RPC succeeds, be sure to reset host->retries so sm-notify
doesn't start walking down the host's addrinfo list when we _are_
making progress. In the common case, if the host responds, we avoid
extra rpcbind queries and send all requests for the host to the same
IP address.
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Steve Dickson <steved@redhat.com>
-rw-r--r-- | utils/statd/sm-notify.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/utils/statd/sm-notify.c b/utils/statd/sm-notify.c index aa202d3..690ec2a 100644 --- a/utils/statd/sm-notify.c +++ b/utils/statd/sm-notify.c @@ -699,6 +699,7 @@ smn_defer(struct nsm_host *host) static void smn_schedule(struct nsm_host *host) { + host->retries = 0; host->xid = 0; host->send_next = time(NULL); host->timeout = NSM_TIMEOUT; |