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 */