diff options
author | Trond Myklebust <trond.myklebust@primarydata.com> | 2017-11-06 15:28:02 -0500 |
---|---|---|
committer | Anna Schumaker <Anna.Schumaker@Netapp.com> | 2017-11-17 16:43:45 -0500 |
commit | ad9e02dc026b75069f6a336e0daf2d54925967b6 (patch) | |
tree | 1aa04eab503439d34d57df69abdc5e5817b08b57 | |
parent | c9399f21c215453b414702758b8c4b7d66605eac (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.c | 3 | ||||
-rw-r--r-- | fs/nfs/nfs4trace.h | 2 |
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); | ||
1484 | out: | 1485 | out: |
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 | ||
1062 | DEFINE_NFS4_INODE_STATEID_EVENT(nfs4_setattr); | 1062 | DEFINE_NFS4_INODE_STATEID_EVENT(nfs4_setattr); |
1063 | DEFINE_NFS4_INODE_STATEID_EVENT(nfs4_delegreturn); | 1063 | DEFINE_NFS4_INODE_STATEID_EVENT(nfs4_delegreturn); |
1064 | DEFINE_NFS4_INODE_STATEID_EVENT(nfs4_open_stateid_update); | ||
1065 | DEFINE_NFS4_INODE_STATEID_EVENT(nfs4_open_stateid_update_wait); | ||
1064 | 1066 | ||
1065 | DECLARE_EVENT_CLASS(nfs4_getattr_event, | 1067 | DECLARE_EVENT_CLASS(nfs4_getattr_event, |
1066 | TP_PROTO( | 1068 | TP_PROTO( |