diff options
author | Eric Paris <eparis@redhat.com> | 2009-12-17 21:24:23 -0500 |
---|---|---|
committer | Eric Paris <eparis@redhat.com> | 2010-07-28 09:58:52 -0400 |
commit | 4136510dd61a1ca151fc5b9d8c1ebd5a8ce2e8f4 (patch) | |
tree | f71d8d0e04fdc0fb81ef60d38ac3c36800c57736 /include/linux | |
parent | 2823e04de4f1a49087b58ff2bb8f61361ffd9321 (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')
-rw-r--r-- | include/linux/fsnotify_backend.h | 10 |
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 | */ | ||
241 | struct 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 */ |