@@ -32,40 +32,37 @@ struct eventfs_attr {
32
32
/*
33
33
* struct eventfs_inode - hold the properties of the eventfs directories.
34
34
* @list: link list into the parent directory
35
+ * @rcu: Union with @list for freeing
36
+ * @children: link list into the child eventfs_inode
35
37
* @entries: the array of entries representing the files in the directory
36
38
* @name: the name of the directory to create
37
- * @children: link list into the child eventfs_inode
38
39
* @events_dir: the dentry of the events directory
39
40
* @entry_attrs: Saved mode and ownership of the @d_children
40
- * @attr: Saved mode and ownership of eventfs_inode itself
41
41
* @data: The private data to pass to the callbacks
42
+ * @attr: Saved mode and ownership of eventfs_inode itself
42
43
* @is_freed: Flag set if the eventfs is on its way to be freed
43
44
* Note if is_freed is set, then dentry is corrupted.
45
+ * @is_events: Flag set for only the top level "events" directory
44
46
* @nr_entries: The number of items in @entries
47
+ * @ino: The saved inode number
45
48
*/
46
49
struct eventfs_inode {
47
- struct kref kref ;
48
- struct list_head list ;
50
+ union {
51
+ struct list_head list ;
52
+ struct rcu_head rcu ;
53
+ };
54
+ struct list_head children ;
49
55
const struct eventfs_entry * entries ;
50
56
const char * name ;
51
- struct list_head children ;
52
57
struct dentry * events_dir ;
53
58
struct eventfs_attr * entry_attrs ;
54
- struct eventfs_attr attr ;
55
59
void * data ;
60
+ struct eventfs_attr attr ;
61
+ struct kref kref ;
56
62
unsigned int is_freed :1 ;
57
63
unsigned int is_events :1 ;
58
64
unsigned int nr_entries :30 ;
59
65
unsigned int ino ;
60
- /*
61
- * Union - used for deletion
62
- * @llist: for calling dput() if needed after RCU
63
- * @rcu: eventfs_inode to delete in RCU
64
- */
65
- union {
66
- struct llist_node llist ;
67
- struct rcu_head rcu ;
68
- };
69
66
};
70
67
71
68
static inline struct tracefs_inode * get_tracefs (const struct inode * inode )
0 commit comments