aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/fsnotify_backend.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/fsnotify_backend.h')
-rw-r--r--include/linux/fsnotify_backend.h38
1 files changed, 19 insertions, 19 deletions
diff --git a/include/linux/fsnotify_backend.h b/include/linux/fsnotify_backend.h
index 7a6ba755acc3..59c072e8fddd 100644
--- a/include/linux/fsnotify_backend.h
+++ b/include/linux/fsnotify_backend.h
@@ -62,7 +62,7 @@
62 62
63struct fsnotify_group; 63struct fsnotify_group;
64struct fsnotify_event; 64struct fsnotify_event;
65struct fsnotify_mark_entry; 65struct fsnotify_mark;
66struct fsnotify_event_private_data; 66struct fsnotify_event_private_data;
67 67
68/* 68/*
@@ -83,7 +83,7 @@ struct fsnotify_ops {
83 int data_type); 83 int data_type);
84 int (*handle_event)(struct fsnotify_group *group, struct fsnotify_event *event); 84 int (*handle_event)(struct fsnotify_group *group, struct fsnotify_event *event);
85 void (*free_group_priv)(struct fsnotify_group *group); 85 void (*free_group_priv)(struct fsnotify_group *group);
86 void (*freeing_mark)(struct fsnotify_mark_entry *entry, struct fsnotify_group *group); 86 void (*freeing_mark)(struct fsnotify_mark *entry, struct fsnotify_group *group);
87 void (*free_event_priv)(struct fsnotify_event_private_data *priv); 87 void (*free_event_priv)(struct fsnotify_event_private_data *priv);
88}; 88};
89 89
@@ -133,12 +133,12 @@ struct fsnotify_group {
133 unsigned int q_len; /* events on the queue */ 133 unsigned int q_len; /* events on the queue */
134 unsigned int max_events; /* maximum events allowed on the list */ 134 unsigned int max_events; /* maximum events allowed on the list */
135 135
136 /* stores all fastapth entries assoc with this group so they can be cleaned on unregister */ 136 /* stores all fastpath marks assoc with this group so they can be cleaned on unregister */
137 spinlock_t mark_lock; /* protect mark_entries list */ 137 spinlock_t mark_lock; /* protect marks_list */
138 atomic_t num_marks; /* 1 for each mark entry and 1 for not being 138 atomic_t num_marks; /* 1 for each mark entry and 1 for not being
139 * past the point of no return when freeing 139 * past the point of no return when freeing
140 * a group */ 140 * a group */
141 struct list_head mark_entries; /* all inode mark entries for this group */ 141 struct list_head marks_list; /* all inode marks for this group */
142 142
143 /* prevents double list_del of group_list. protected by global fsnotify_grp_mutex */ 143 /* prevents double list_del of group_list. protected by global fsnotify_grp_mutex */
144 bool on_inode_group_list; 144 bool on_inode_group_list;
@@ -226,20 +226,20 @@ struct fsnotify_event {
226}; 226};
227 227
228/* 228/*
229 * Inode specific fields in an fsnotify_mark_entry 229 * Inode specific fields in an fsnotify_mark
230 */ 230 */
231struct fsnotify_inode_mark { 231struct fsnotify_inode_mark {
232 struct inode *inode; /* inode this entry is associated with */ 232 struct inode *inode; /* inode this entry is associated with */
233 struct hlist_node i_list; /* list of mark_entries by inode->i_fsnotify_mark_entries */ 233 struct hlist_node i_list; /* list of marks by inode->i_fsnotify_marks */
234 struct list_head free_i_list; /* tmp list used when freeing this mark */ 234 struct list_head free_i_list; /* tmp list used when freeing this mark */
235}; 235};
236 236
237/* 237/*
238 * Mount point specific fields in an fsnotify_mark_entry 238 * Mount point specific fields in an fsnotify_mark
239 */ 239 */
240struct fsnotify_vfsmount_mark { 240struct fsnotify_vfsmount_mark {
241 struct vfsmount *mnt; /* inode this entry is associated with */ 241 struct vfsmount *mnt; /* inode this entry is associated with */
242 struct hlist_node m_list; /* list of mark_entries by inode->i_fsnotify_mark_entries */ 242 struct hlist_node m_list; /* list of marks by inode->i_fsnotify_marks */
243 struct list_head free_m_list; /* tmp list used when freeing this mark */ 243 struct list_head free_m_list; /* tmp list used when freeing this mark */
244}; 244};
245 245
@@ -253,13 +253,13 @@ struct fsnotify_vfsmount_mark {
253 * (such as dnotify) will flush these when the open fd is closed and not at 253 * (such as dnotify) will flush these when the open fd is closed and not at
254 * inode eviction or modification. 254 * inode eviction or modification.
255 */ 255 */
256struct fsnotify_mark_entry { 256struct fsnotify_mark {
257 __u32 mask; /* mask this mark entry is for */ 257 __u32 mask; /* mask this mark entry is for */
258 /* we hold ref for each i_list and g_list. also one ref for each 'thing' 258 /* we hold ref for each i_list and g_list. also one ref for each 'thing'
259 * in kernel that found and may be using this mark. */ 259 * in kernel that found and may be using this mark. */
260 atomic_t refcnt; /* active things looking at this mark */ 260 atomic_t refcnt; /* active things looking at this mark */
261 struct fsnotify_group *group; /* group this mark entry is for */ 261 struct fsnotify_group *group; /* group this mark entry is for */
262 struct list_head g_list; /* list of mark_entries by group->i_fsnotify_mark_entries */ 262 struct list_head g_list; /* list of marks by group->i_fsnotify_marks */
263 spinlock_t lock; /* protect group and inode */ 263 spinlock_t lock; /* protect group and inode */
264 union { 264 union {
265 struct fsnotify_inode_mark i; 265 struct fsnotify_inode_mark i;
@@ -269,7 +269,7 @@ struct fsnotify_mark_entry {
269#define FSNOTIFY_MARK_FLAG_INODE 0x01 269#define FSNOTIFY_MARK_FLAG_INODE 0x01
270#define FSNOTIFY_MARK_FLAG_VFSMOUNT 0x02 270#define FSNOTIFY_MARK_FLAG_VFSMOUNT 0x02
271 unsigned int flags; /* vfsmount or inode mark? */ 271 unsigned int flags; /* vfsmount or inode mark? */
272 void (*free_mark)(struct fsnotify_mark_entry *entry); /* called on final put+free */ 272 void (*free_mark)(struct fsnotify_mark *entry); /* called on final put+free */
273}; 273};
274 274
275#ifdef CONFIG_FSNOTIFY 275#ifdef CONFIG_FSNOTIFY
@@ -361,19 +361,19 @@ extern struct fsnotify_event *fsnotify_remove_notify_event(struct fsnotify_group
361 361
362/* run all marks associated with an inode and update inode->i_fsnotify_mask */ 362/* run all marks associated with an inode and update inode->i_fsnotify_mask */
363extern void fsnotify_recalc_inode_mask(struct inode *inode); 363extern void fsnotify_recalc_inode_mask(struct inode *inode);
364extern void fsnotify_init_mark(struct fsnotify_mark_entry *entry, void (*free_mark)(struct fsnotify_mark_entry *entry)); 364extern void fsnotify_init_mark(struct fsnotify_mark *entry, void (*free_mark)(struct fsnotify_mark *entry));
365/* find (and take a reference) to a mark associated with group and inode */ 365/* find (and take a reference) to a mark associated with group and inode */
366extern struct fsnotify_mark_entry *fsnotify_find_mark_entry(struct fsnotify_group *group, struct inode *inode); 366extern struct fsnotify_mark *fsnotify_find_mark_entry(struct fsnotify_group *group, struct inode *inode);
367/* copy the values from old into new */ 367/* copy the values from old into new */
368extern void fsnotify_duplicate_mark(struct fsnotify_mark_entry *new, struct fsnotify_mark_entry *old); 368extern void fsnotify_duplicate_mark(struct fsnotify_mark *new, struct fsnotify_mark *old);
369/* attach the mark to both the group and the inode */ 369/* attach the mark to both the group and the inode */
370extern int fsnotify_add_mark(struct fsnotify_mark_entry *entry, struct fsnotify_group *group, struct inode *inode, int allow_dups); 370extern int fsnotify_add_mark(struct fsnotify_mark *entry, struct fsnotify_group *group, struct inode *inode, int allow_dups);
371/* given a mark, flag it to be freed when all references are dropped */ 371/* given a mark, flag it to be freed when all references are dropped */
372extern void fsnotify_destroy_mark_by_entry(struct fsnotify_mark_entry *entry); 372extern void fsnotify_destroy_mark_by_entry(struct fsnotify_mark *entry);
373/* run all the marks in a group, and flag them to be freed */ 373/* run all the marks in a group, and flag them to be freed */
374extern void fsnotify_clear_marks_by_group(struct fsnotify_group *group); 374extern void fsnotify_clear_marks_by_group(struct fsnotify_group *group);
375extern void fsnotify_get_mark(struct fsnotify_mark_entry *entry); 375extern void fsnotify_get_mark(struct fsnotify_mark *entry);
376extern void fsnotify_put_mark(struct fsnotify_mark_entry *entry); 376extern void fsnotify_put_mark(struct fsnotify_mark *entry);
377extern void fsnotify_unmount_inodes(struct list_head *list); 377extern void fsnotify_unmount_inodes(struct list_head *list);
378 378
379/* put here because inotify does some weird stuff when destroying watches */ 379/* put here because inotify does some weird stuff when destroying watches */