aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTrond Myklebust <trond.myklebust@primarydata.com>2017-11-06 15:28:02 -0500
committerAnna Schumaker <Anna.Schumaker@Netapp.com>2017-11-17 16:43:45 -0500
commitad9e02dc026b75069f6a336e0daf2d54925967b6 (patch)
tree1aa04eab503439d34d57df69abdc5e5817b08b57
parentc9399f21c215453b414702758b8c4b7d66605eac (diff)
NFSv4: Add a tracepoint to document open stateid updates
Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com> Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
-rw-r--r--fs/nfs/nfs4proc.c3
-rw-r--r--fs/nfs/nfs4trace.h2
2 files changed, 5 insertions, 0 deletions
diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c
index cec4bcba65e8..aa8ea518ec6f 100644
--- a/fs/nfs/nfs4proc.c
+++ b/fs/nfs/nfs4proc.c
@@ -1481,6 +1481,7 @@ static void nfs_clear_open_stateid_locked(struct nfs4_state *state,
1481 if (test_bit(NFS_DELEGATED_STATE, &state->flags) == 0) 1481 if (test_bit(NFS_DELEGATED_STATE, &state->flags) == 0)
1482 nfs4_stateid_copy(&state->stateid, stateid); 1482 nfs4_stateid_copy(&state->stateid, stateid);
1483 nfs4_stateid_copy(&state->open_stateid, stateid); 1483 nfs4_stateid_copy(&state->open_stateid, stateid);
1484 trace_nfs4_open_stateid_update(state->inode, stateid, 0);
1484out: 1485out:
1485 nfs_state_log_update_open_stateid(state); 1486 nfs_state_log_update_open_stateid(state);
1486} 1487}
@@ -1524,6 +1525,7 @@ static void nfs_set_open_stateid_locked(struct nfs4_state *state,
1524 write_sequnlock(&state->seqlock); 1525 write_sequnlock(&state->seqlock);
1525 spin_unlock(&state->owner->so_lock); 1526 spin_unlock(&state->owner->so_lock);
1526 rcu_read_unlock(); 1527 rcu_read_unlock();
1528 trace_nfs4_open_stateid_update_wait(state->inode, stateid, 0);
1527 if (!signal_pending(current)) { 1529 if (!signal_pending(current)) {
1528 if (schedule_timeout(5*HZ) == 0) 1530 if (schedule_timeout(5*HZ) == 0)
1529 status = -EAGAIN; 1531 status = -EAGAIN;
@@ -1545,6 +1547,7 @@ static void nfs_set_open_stateid_locked(struct nfs4_state *state,
1545 if (test_bit(NFS_DELEGATED_STATE, &state->flags) == 0) 1547 if (test_bit(NFS_DELEGATED_STATE, &state->flags) == 0)
1546 nfs4_stateid_copy(&state->stateid, stateid); 1548 nfs4_stateid_copy(&state->stateid, stateid);
1547 nfs4_stateid_copy(&state->open_stateid, stateid); 1549 nfs4_stateid_copy(&state->open_stateid, stateid);
1550 trace_nfs4_open_stateid_update(state->inode, stateid, status);
1548 nfs_state_log_update_open_stateid(state); 1551 nfs_state_log_update_open_stateid(state);
1549} 1552}
1550 1553
diff --git a/fs/nfs/nfs4trace.h b/fs/nfs/nfs4trace.h
index 7a5588c25f70..06ac7156c44b 100644
--- a/fs/nfs/nfs4trace.h
+++ b/fs/nfs/nfs4trace.h
@@ -1061,6 +1061,8 @@ DECLARE_EVENT_CLASS(nfs4_inode_stateid_event,
1061 1061
1062DEFINE_NFS4_INODE_STATEID_EVENT(nfs4_setattr); 1062DEFINE_NFS4_INODE_STATEID_EVENT(nfs4_setattr);
1063DEFINE_NFS4_INODE_STATEID_EVENT(nfs4_delegreturn); 1063DEFINE_NFS4_INODE_STATEID_EVENT(nfs4_delegreturn);
1064DEFINE_NFS4_INODE_STATEID_EVENT(nfs4_open_stateid_update);
1065DEFINE_NFS4_INODE_STATEID_EVENT(nfs4_open_stateid_update_wait);
1064 1066
1065DECLARE_EVENT_CLASS(nfs4_getattr_event, 1067DECLARE_EVENT_CLASS(nfs4_getattr_event,
1066 TP_PROTO( 1068 TP_PROTO(