Messages in this thread Patch in this message | | | Subject | Re: Non-blocking lock requests during the grace period | From | Trond Myklebust <> | Date | 15 Nov 2002 03:33:56 +0100 |
| |
>>>>> " " == Juan Gomez <juang@us.ibm.com> writes:
> I found out that the current Linux client of lockd blocks > non-blocking lock requests while the server is in the grace > period. I think this is incorrect behavior and I am wondering > if the will exists out there to correct this and return > "resource not available" to the process when a request is for a > *non-blocking* lock while the server is in the grace period.
Would the following fix it?
Cheers, Trond
--- linux-2.5.47/fs/lockd/clntproc.c.orig 2002-09-29 10:15:13.000000000 -0400 +++ linux-2.5.47/fs/lockd/clntproc.c 2002-11-14 21:32:26.000000000 -0500 @@ -256,10 +256,8 @@ msg.rpc_cred = NULL; do { - if (host->h_reclaiming && !argp->reclaim) { - interruptible_sleep_on(&host->h_gracewait); - continue; - } + if (host->h_reclaiming && !argp->reclaim) + goto wait_on_grace; /* If we have no RPC client yet, create one. */ if ((clnt = nlm_bind_host(host)) == NULL) @@ -296,6 +294,9 @@ dprintk("lockd: server returns status %d\n", resp->status); return 0; /* Okay, call complete */ } +wait_on_grace: + if (!argp->block) + return -EAGAIN; /* Back off a little and try again */ interruptible_sleep_on_timeout(&host->h_gracewait, 15*HZ); - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |