Commit:     90bd17c87821fe0e055e0f9a7446c2875f31eb4c
Parent:     031fd3aa20fcf6d1862ea7814ee8b2caf36c0d78
Author:     Jeff Layton <[EMAIL PROTECTED]>
AuthorDate: Wed Feb 6 11:34:11 2008 -0500
Committer:  J. Bruce Fields <[EMAIL PROTECTED]>
CommitDate: Sun Feb 10 18:09:36 2008 -0500

    NLM: have server-side RPC clients default to soft RPC tasks
    Now that it no longer does an RPC ping, lockd always ends up queueing
    an RPC task for the GRANT_MSG callback. But, it also requeues the block
    for later attempts. Since these are hard RPC tasks, if the client we're
    calling back goes unresponsive the GRANT_MSG callbacks can stack up in
    the RPC queue.
    Fix this by making server-side RPC clients default to soft RPC tasks.
    lockd requeues the block anyway, so this should be OK.
    Signed-off-by: Jeff Layton <[EMAIL PROTECTED]>
    Signed-off-by: J. Bruce Fields <[EMAIL PROTECTED]>
 fs/lockd/host.c |   11 +++++++++--
 1 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/fs/lockd/host.c b/fs/lockd/host.c
index 00063ee..f1ef49f 100644
--- a/fs/lockd/host.c
+++ b/fs/lockd/host.c
@@ -243,11 +243,18 @@ nlm_bind_host(struct nlm_host *host)
                        .program        = &nlm_program,
                        .version        = host->h_version,
                        .authflavor     = RPC_AUTH_UNIX,
-                       .flags          = (RPC_CLNT_CREATE_HARDRTRY |
-                                          RPC_CLNT_CREATE_NOPING |
+                       .flags          = (RPC_CLNT_CREATE_NOPING |
+               /*
+                * lockd retries server side blocks automatically so we want
+                * those to be soft RPC calls. Client side calls need to be
+                * hard RPC tasks.
+                */
+               if (!host->h_server)
+                       args.flags |= RPC_CLNT_CREATE_HARDRTRY;
                clnt = rpc_create(&args);
                if (!IS_ERR(clnt))
                        host->h_rpcclnt = clnt;
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at

Reply via email to