2000-12-10 Chip Salzenberg <chip@valinux.com>
authorchip <chip>
Mon, 11 Dec 2000 00:07:42 +0000 (00:07 +0000)
committerchip <chip>
Mon, 11 Dec 2000 00:07:42 +0000 (00:07 +0000)
* utils/statd/monitor.c (sm_mon_1_svc): Fix buggy check for
program and procedure numbers of kernel lockd's callback.  Also,
besides the old (and broken) procedure #24, allow #16 per Trond.

ChangeLog
utils/statd/monitor.c

index 9f17863..00a5ac0 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2000-12-10  Chip Salzenberg  <chip@valinux.com>
+
+       * utils/statd/monitor.c (sm_mon_1_svc): Fix buggy check for
+       program and procedure numbers of kernel lockd's callback.  Also,
+       besides the old (and broken) procedure #24, allow #16 per Trond.
+
 2000-12-03  Chip Salzenberg  <chip@valinux.com>
 
        * support/nfs/xio.c (xfopen): Initialize x_line to one, not zero.
index 879e583..27c409f 100644 (file)
@@ -71,12 +71,15 @@ sm_mon_1_svc(struct mon *argp, struct svc_req *rqstp)
         *      This is specific to the linux kernel lockd, which
         *      makes the callback procedure part of the lockd interface.
         *      It is also prone to break when lockd changes its callback
-        *      procedure number.  XXX FIXME
+        *      procedure number -- which, in fact, has now happened once.
+        *      There must be a better way....   XXX FIXME
         */
-       if (id->my_proc != 100021 && id->my_proc != 24) {
+       if (id->my_prog != 100021 ||
+           (id->my_proc != 16 && id->my_proc != 24))
+       {
                log(L_WARNING,
-                       "Attempt to register callback to service %d",
-                       id->my_proc);
+                       "Attempt to register callback to %d/%d",
+                       id->my_prog, id->my_proc);
                goto failure;
        }