aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/fsnotify_backend.h
diff options
context:
space:
mode:
authorEric Paris <eparis@redhat.com>2009-12-17 21:24:23 -0500
committerEric Paris <eparis@redhat.com>2010-07-28 09:58:52 -0400
commit4136510dd61a1ca151fc5b9d8c1ebd5a8ce2e8f4 (patch)
treef71d8d0e04fdc0fb81ef60d38ac3c36800c57736 /include/linux/fsnotify_backend.h
parent2823e04de4f1a49087b58ff2bb8f61361ffd9321 (diff)
fsnotify: add vfsmount specific fields to the fsnotify_mark_entry union
vfsmount marks need mostly the same data as inode specific fields, but for consistency and understandability we put that data in a vfsmount specific struct inside a union with inode specific data. Signed-off-by: Eric Paris <eparis@redhat.com>
Diffstat (limited to 'include/linux/fsnotify_backend.h')
-rw-r--r--include/linux/fsnotify_backend.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/include/linux/fsnotify_backend.h b/include/linux/fsnotify_backend.h
index dca7f2cbde90..0c0fd4ee2840 100644
--- a/include/linux/fsnotify_backend.h
+++ b/include/linux/fsnotify_backend.h
@@ -236,6 +236,15 @@ struct fsnotify_inode_mark {
236}; 236};
237 237
238/* 238/*
239 * Mount point specific fields in an fsnotify_mark_entry
240 */
241struct fsnotify_vfsmount_mark {
242 struct vfsmount *mnt; /* inode this entry is associated with */
243 struct hlist_node m_list; /* list of mark_entries by inode->i_fsnotify_mark_entries */
244 struct list_head free_m_list; /* tmp list used when freeing this mark */
245};
246
247/*
239 * a mark is simply an entry attached to an in core inode which allows an 248 * a mark is simply an entry attached to an in core inode which allows an
240 * fsnotify listener to indicate they are either no longer interested in events 249 * fsnotify listener to indicate they are either no longer interested in events
241 * of a type matching mask or only interested in those events. 250 * of a type matching mask or only interested in those events.
@@ -255,6 +264,7 @@ struct fsnotify_mark_entry {
255 spinlock_t lock; /* protect group and inode */ 264 spinlock_t lock; /* protect group and inode */
256 union { 265 union {
257 struct fsnotify_inode_mark i; 266 struct fsnotify_inode_mark i;
267 struct fsnotify_vfsmount_mark m;
258 }; 268 };
259 struct list_head free_g_list; /* tmp list used when freeing this mark */ 269 struct list_head free_g_list; /* tmp list used when freeing this mark */
260 void (*free_mark)(struct fsnotify_mark_entry *entry); /* called on final put+free */ 270 void (*free_mark)(struct fsnotify_mark_entry *entry); /* called on final put+free */