|
@@ -46,6 +46,7 @@ static void nlmsvc_remove_block(struct nlm_block *block);
|
|
static int nlmsvc_setgrantargs(struct nlm_rqst *call, struct nlm_lock *lock);
|
|
static int nlmsvc_setgrantargs(struct nlm_rqst *call, struct nlm_lock *lock);
|
|
static void nlmsvc_freegrantargs(struct nlm_rqst *call);
|
|
static void nlmsvc_freegrantargs(struct nlm_rqst *call);
|
|
static const struct rpc_call_ops nlmsvc_grant_ops;
|
|
static const struct rpc_call_ops nlmsvc_grant_ops;
|
|
|
|
+static const char *nlmdbg_cookie2a(const struct nlm_cookie *cookie);
|
|
|
|
|
|
/*
|
|
/*
|
|
* The list of blocked locks to retry
|
|
* The list of blocked locks to retry
|
|
@@ -934,3 +935,32 @@ nlmsvc_retry_blocked(void)
|
|
|
|
|
|
return timeout;
|
|
return timeout;
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+#ifdef RPC_DEBUG
|
|
|
|
+static const char *nlmdbg_cookie2a(const struct nlm_cookie *cookie)
|
|
|
|
+{
|
|
|
|
+ /*
|
|
|
|
+ * We can get away with a static buffer because we're only
|
|
|
|
+ * called with BKL held.
|
|
|
|
+ */
|
|
|
|
+ static char buf[2*NLM_MAXCOOKIELEN+1];
|
|
|
|
+ unsigned int i, len = sizeof(buf);
|
|
|
|
+ char *p = buf;
|
|
|
|
+
|
|
|
|
+ len--; /* allow for trailing \0 */
|
|
|
|
+ if (len < 3)
|
|
|
|
+ return "???";
|
|
|
|
+ for (i = 0 ; i < cookie->len ; i++) {
|
|
|
|
+ if (len < 2) {
|
|
|
|
+ strcpy(p-3, "...");
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ sprintf(p, "%02x", cookie->data[i]);
|
|
|
|
+ p += 2;
|
|
|
|
+ len -= 2;
|
|
|
|
+ }
|
|
|
|
+ *p = '\0';
|
|
|
|
+
|
|
|
|
+ return buf;
|
|
|
|
+}
|
|
|
|
+#endif
|