summaryrefslogtreecommitdiffstats
path: root/tapset/nfs4_callback.stp
diff options
context:
space:
mode:
Diffstat (limited to 'tapset/nfs4_callback.stp')
-rw-r--r--tapset/nfs4_callback.stp35
1 files changed, 35 insertions, 0 deletions
diff --git a/tapset/nfs4_callback.stp b/tapset/nfs4_callback.stp
new file mode 100644
index 0000000..351f0f2
--- /dev/null
+++ b/tapset/nfs4_callback.stp
@@ -0,0 +1,35 @@
+%{
+#include <linux/socket.h>
+#include <net/sock.h>
+#include <net/inet_sock.h>
+
+#include <linux/sunrpc/svc.h>
+
+#include <linux/nfs4.h>
+#include <linux/nfsd/nfsfh.h>
+#include <linux/nfsd/state.h>
+%}
+
+function nfs4_callback:string(_stp:long)
+%{
+ struct nfs4_stateid *stp = (struct nfs4_stateid *)
+ (long) kread(&(THIS->_stp));
+ struct nfs4_stateowner *sop = (struct nfs4_stateowner *)
+ (long) kread(&stp->st_stateowner);
+ struct nfs4_client *so_client = (struct nfs4_client *)
+ (long)kread(&sop->so_client);
+ struct nfs4_callback *cb = (struct nfs4_callback *)
+ &so_client->cl_callback;
+
+ char buf[MAXSTRINGLEN];
+ int cc=0;
+
+ snprintf(buf+cc, MAXSTRINGLEN, "cb: cb_set %d so_confirmed %d",
+ cb->cb_set.counter, sop->so_confirmed);
+
+ cc = strlen(buf);
+ snprintf(THIS->__retvalue, MAXSTRINGLEN, "%s", buf);
+
+ CATCH_DEREF_FAULT();
+
+%}