kNFS(lockd) patch linux 2.5.41

From: Juan Gomez (gomez@cs.sjsu.edu)
Date: Tue Oct 08 2002 - 13:42:10 EST


Linus,

Would you please review the attached patch and include in the dist?

If fixes a faulty delay experienced by lockd clients just after the grace
period and during the first request to lockd.

diff -ru linux-2.5.41/fs/lockd/svc.c linux-2.5.41-plus-delay-patch/fs/lockd/svc.c
--- linux-2.5.41/fs/lockd/svc.c Mon Oct 7 11:24:41 2002
+++ linux-2.5.41-plus-delay-patch/fs/lockd/svc.c Tue Oct 8 11:21:00 2002
@@ -143,8 +143,7 @@
                  */
                 if (!nlmsvc_grace_period) {
                         timeout = nlmsvc_retry_blocked();
- } else if (time_before(grace_period_expire, jiffies))
- clear_grace_period();
+ }
 
                 /*
                  * Find a socket with data available and call its
@@ -163,6 +162,21 @@
                 dprintk("lockd: request from %08x\n",
                         (unsigned)ntohl(rqstp->rq_addr.sin_addr.s_addr));
 
+ /*
+ * We need to do the clear/grace period here and not before
+ * svc_recv() because svc_recv() may sleep longer than the
+ * grace period and the first request may be falsely processed
+ * as if the server was in the grace period when it was not
+ * causing unnecessary delays for the first request received.
+ * Juan C. Gomez j_carlos_gome@yahoo.com
+ */
+
+ if (nlmsvc_grace_period
+ &&
+ time_before(grace_period_expire, jiffies)) {
+ clear_grace_period();
+ }
+
                 svc_process(serv, rqstp);
 
         }

-
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/



This archive was generated by hypermail 2b29 : Tue Oct 15 2002 - 22:00:26 EST