diff options
-rw-r--r-- | fs/nfs/nfs4proc.c | 6 | ||||
-rw-r--r-- | fs/nfs/nfs4trace.h | 55 |
2 files changed, 61 insertions, 0 deletions
diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c index 214f9c4fdeee..c8b5ff6effe9 100644 --- a/fs/nfs/nfs4proc.c +++ b/fs/nfs/nfs4proc.c | |||
@@ -6860,6 +6860,10 @@ nfs4_proc_layoutget(struct nfs4_layoutget *lgp, gfp_t gfp_flags) | |||
6860 | status = nfs4_wait_for_completion_rpc_task(task); | 6860 | status = nfs4_wait_for_completion_rpc_task(task); |
6861 | if (status == 0) | 6861 | if (status == 0) |
6862 | status = task->tk_status; | 6862 | status = task->tk_status; |
6863 | trace_nfs4_layoutget(lgp->args.ctx, | ||
6864 | &lgp->args.range, | ||
6865 | &lgp->res.range, | ||
6866 | status); | ||
6863 | /* if layoutp->len is 0, nfs4_layoutget_prepare called rpc_exit */ | 6867 | /* if layoutp->len is 0, nfs4_layoutget_prepare called rpc_exit */ |
6864 | if (status == 0 && lgp->res.layoutp->len) | 6868 | if (status == 0 && lgp->res.layoutp->len) |
6865 | lseg = pnfs_layout_process(lgp); | 6869 | lseg = pnfs_layout_process(lgp); |
@@ -6945,6 +6949,7 @@ int nfs4_proc_layoutreturn(struct nfs4_layoutreturn *lrp) | |||
6945 | if (IS_ERR(task)) | 6949 | if (IS_ERR(task)) |
6946 | return PTR_ERR(task); | 6950 | return PTR_ERR(task); |
6947 | status = task->tk_status; | 6951 | status = task->tk_status; |
6952 | trace_nfs4_layoutreturn(lrp->args.inode, status); | ||
6948 | dprintk("<-- %s status=%d\n", __func__, status); | 6953 | dprintk("<-- %s status=%d\n", __func__, status); |
6949 | rpc_put_task(task); | 6954 | rpc_put_task(task); |
6950 | return status; | 6955 | return status; |
@@ -7131,6 +7136,7 @@ nfs4_proc_layoutcommit(struct nfs4_layoutcommit_data *data, bool sync) | |||
7131 | if (status != 0) | 7136 | if (status != 0) |
7132 | goto out; | 7137 | goto out; |
7133 | status = task->tk_status; | 7138 | status = task->tk_status; |
7139 | trace_nfs4_layoutcommit(data->args.inode, status); | ||
7134 | out: | 7140 | out: |
7135 | dprintk("%s: status %d\n", __func__, status); | 7141 | dprintk("%s: status %d\n", __func__, status); |
7136 | rpc_put_task(task); | 7142 | rpc_put_task(task); |
diff --git a/fs/nfs/nfs4trace.h b/fs/nfs/nfs4trace.h index 1ea69836443f..b2a2d8a30c66 100644 --- a/fs/nfs/nfs4trace.h +++ b/fs/nfs/nfs4trace.h | |||
@@ -894,6 +894,61 @@ DECLARE_EVENT_CLASS(nfs4_commit_event, | |||
894 | DEFINE_NFS4_COMMIT_EVENT(nfs4_commit); | 894 | DEFINE_NFS4_COMMIT_EVENT(nfs4_commit); |
895 | #ifdef CONFIG_NFS_V4_1 | 895 | #ifdef CONFIG_NFS_V4_1 |
896 | DEFINE_NFS4_COMMIT_EVENT(nfs4_pnfs_commit_ds); | 896 | DEFINE_NFS4_COMMIT_EVENT(nfs4_pnfs_commit_ds); |
897 | |||
898 | #define show_pnfs_iomode(iomode) \ | ||
899 | __print_symbolic(iomode, \ | ||
900 | { IOMODE_READ, "READ" }, \ | ||
901 | { IOMODE_RW, "RW" }, \ | ||
902 | { IOMODE_ANY, "ANY" }) | ||
903 | |||
904 | TRACE_EVENT(nfs4_layoutget, | ||
905 | TP_PROTO( | ||
906 | const struct nfs_open_context *ctx, | ||
907 | const struct pnfs_layout_range *args, | ||
908 | const struct pnfs_layout_range *res, | ||
909 | int error | ||
910 | ), | ||
911 | |||
912 | TP_ARGS(ctx, args, res, error), | ||
913 | |||
914 | TP_STRUCT__entry( | ||
915 | __field(dev_t, dev) | ||
916 | __field(u32, fhandle) | ||
917 | __field(u64, fileid) | ||
918 | __field(u32, iomode) | ||
919 | __field(u64, offset) | ||
920 | __field(u64, count) | ||
921 | __field(int, error) | ||
922 | ), | ||
923 | |||
924 | TP_fast_assign( | ||
925 | const struct inode *inode = ctx->dentry->d_inode; | ||
926 | __entry->dev = inode->i_sb->s_dev; | ||
927 | __entry->fileid = NFS_FILEID(inode); | ||
928 | __entry->fhandle = nfs_fhandle_hash(NFS_FH(inode)); | ||
929 | __entry->iomode = args->iomode; | ||
930 | __entry->offset = args->offset; | ||
931 | __entry->count = args->length; | ||
932 | __entry->error = error; | ||
933 | ), | ||
934 | |||
935 | TP_printk( | ||
936 | "error=%d (%s) fileid=%02x:%02x:%llu fhandle=0x%08x " | ||
937 | "iomode=%s offset=%llu count=%llu", | ||
938 | __entry->error, | ||
939 | show_nfsv4_errors(__entry->error), | ||
940 | MAJOR(__entry->dev), MINOR(__entry->dev), | ||
941 | (unsigned long long)__entry->fileid, | ||
942 | __entry->fhandle, | ||
943 | show_pnfs_iomode(__entry->iomode), | ||
944 | (unsigned long long)__entry->offset, | ||
945 | (unsigned long long)__entry->count | ||
946 | ) | ||
947 | ); | ||
948 | |||
949 | DEFINE_NFS4_INODE_EVENT(nfs4_layoutcommit); | ||
950 | DEFINE_NFS4_INODE_EVENT(nfs4_layoutreturn); | ||
951 | |||
897 | #endif /* CONFIG_NFS_V4_1 */ | 952 | #endif /* CONFIG_NFS_V4_1 */ |
898 | 953 | ||
899 | #endif /* _TRACE_NFS4_H */ | 954 | #endif /* _TRACE_NFS4_H */ |