Commit 638037b1 authored by Trond Myklebust's avatar Trond Myklebust

NFS: Add tracepoints for layouterror and layoutstats.

Allow tracing of the NFSv4.2 layouterror and layoutstats operations.
Signed-off-by: default avatarTrond Myklebust <trond.myklebust@hammerspace.com>
parent a19b4785
...@@ -17,6 +17,7 @@ ...@@ -17,6 +17,7 @@
#include "nfs4session.h" #include "nfs4session.h"
#include "internal.h" #include "internal.h"
#include "delegation.h" #include "delegation.h"
#include "nfs4trace.h"
#define NFSDBG_FACILITY NFSDBG_PROC #define NFSDBG_FACILITY NFSDBG_PROC
static int nfs42_do_offload_cancel_async(struct file *dst, nfs4_stateid *std); static int nfs42_do_offload_cancel_async(struct file *dst, nfs4_stateid *std);
...@@ -714,7 +715,7 @@ nfs42_layoutstat_done(struct rpc_task *task, void *calldata) ...@@ -714,7 +715,7 @@ nfs42_layoutstat_done(struct rpc_task *task, void *calldata)
switch (task->tk_status) { switch (task->tk_status) {
case 0: case 0:
break; return;
case -NFS4ERR_BADHANDLE: case -NFS4ERR_BADHANDLE:
case -ESTALE: case -ESTALE:
pnfs_destroy_layout(NFS_I(inode)); pnfs_destroy_layout(NFS_I(inode));
...@@ -760,6 +761,8 @@ nfs42_layoutstat_done(struct rpc_task *task, void *calldata) ...@@ -760,6 +761,8 @@ nfs42_layoutstat_done(struct rpc_task *task, void *calldata)
case -EOPNOTSUPP: case -EOPNOTSUPP:
NFS_SERVER(inode)->caps &= ~NFS_CAP_LAYOUTSTATS; NFS_SERVER(inode)->caps &= ~NFS_CAP_LAYOUTSTATS;
} }
trace_nfs4_layoutstats(inode, &data->args.stateid, task->tk_status);
} }
static void static void
...@@ -882,7 +885,7 @@ nfs42_layouterror_done(struct rpc_task *task, void *calldata) ...@@ -882,7 +885,7 @@ nfs42_layouterror_done(struct rpc_task *task, void *calldata)
switch (task->tk_status) { switch (task->tk_status) {
case 0: case 0:
break; return;
case -NFS4ERR_BADHANDLE: case -NFS4ERR_BADHANDLE:
case -ESTALE: case -ESTALE:
pnfs_destroy_layout(NFS_I(inode)); pnfs_destroy_layout(NFS_I(inode));
...@@ -926,6 +929,9 @@ nfs42_layouterror_done(struct rpc_task *task, void *calldata) ...@@ -926,6 +929,9 @@ nfs42_layouterror_done(struct rpc_task *task, void *calldata)
case -EOPNOTSUPP: case -EOPNOTSUPP:
NFS_SERVER(inode)->caps &= ~NFS_CAP_LAYOUTERROR; NFS_SERVER(inode)->caps &= ~NFS_CAP_LAYOUTERROR;
} }
trace_nfs4_layouterror(inode, &data->args.errors[0].stateid,
task->tk_status);
} }
static void static void
......
...@@ -1994,6 +1994,8 @@ TRACE_EVENT(nfs4_layoutget, ...@@ -1994,6 +1994,8 @@ TRACE_EVENT(nfs4_layoutget,
DEFINE_NFS4_INODE_STATEID_EVENT(nfs4_layoutcommit); DEFINE_NFS4_INODE_STATEID_EVENT(nfs4_layoutcommit);
DEFINE_NFS4_INODE_STATEID_EVENT(nfs4_layoutreturn); DEFINE_NFS4_INODE_STATEID_EVENT(nfs4_layoutreturn);
DEFINE_NFS4_INODE_STATEID_EVENT(nfs4_layoutreturn_on_close); DEFINE_NFS4_INODE_STATEID_EVENT(nfs4_layoutreturn_on_close);
DEFINE_NFS4_INODE_STATEID_EVENT(nfs4_layouterror);
DEFINE_NFS4_INODE_STATEID_EVENT(nfs4_layoutstats);
TRACE_DEFINE_ENUM(PNFS_UPDATE_LAYOUT_UNKNOWN); TRACE_DEFINE_ENUM(PNFS_UPDATE_LAYOUT_UNKNOWN);
TRACE_DEFINE_ENUM(PNFS_UPDATE_LAYOUT_NO_PNFS); TRACE_DEFINE_ENUM(PNFS_UPDATE_LAYOUT_NO_PNFS);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment