afs: Add a tracepoint for VL server list replacement
diff --git a/fs/afs/cell.c b/fs/afs/cell.c
index cf445db..af66f24 100644
--- a/fs/afs/cell.c
+++ b/fs/afs/cell.c
@@ -403,6 +403,8 @@
clear_bit(AFS_CELL_FL_DNS_FAIL, &cell->flags);
clear_bit(AFS_CELL_FL_NOT_FOUND, &cell->flags);
+ trace_afs_vllist_changed(cell, vllist);
+
/* Exclusion on changing vl_addrs is achieved by a
* non-reentrant work item.
*/
diff --git a/include/trace/events/afs.h b/include/trace/events/afs.h
index 33d2918..00125fd 100644
--- a/include/trace/events/afs.h
+++ b/include/trace/events/afs.h
@@ -794,6 +794,31 @@
__entry->call, __entry->op_id, &__entry->uuid)
);
+TRACE_EVENT(afs_vllist_changed,
+ TP_PROTO(struct afs_cell *cell,
+ const struct afs_vlserver_list *vllist),
+
+ TP_ARGS(cell, vllist),
+
+ TP_STRUCT__entry(
+ __array(char, name, 16 )
+ __field(unsigned char, nr_servers )
+ __field(u8, source )
+ __field(u8, status )
+ ),
+
+ TP_fast_assign(
+ strlcpy(__entry->name, cell->name, 16);
+ __entry->nr_servers = vllist->nr_servers;
+ __entry->source = vllist->source;
+ __entry->status = vllist->status;
+ ),
+
+ TP_printk("%s nr=%u s=%u,%u",
+ __entry->name, __entry->nr_servers,
+ __entry->source, __entry->status)
+ );
+
#endif /* _TRACE_AFS_H */
/* This part must be outside protection */