diff options
Diffstat (limited to 'tapset/nfs4_callback.stp')
-rw-r--r-- | tapset/nfs4_callback.stp | 35 |
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(); + +%} |