|
@@ -212,7 +212,11 @@ struct fsnotify_mark {
|
|
|
* in kernel that found and may be using this mark. */
|
|
* in kernel that found and may be using this mark. */
|
|
|
atomic_t refcnt; /* active things looking at this mark */
|
|
atomic_t refcnt; /* active things looking at this mark */
|
|
|
struct fsnotify_group *group; /* group this mark is for */
|
|
struct fsnotify_group *group; /* group this mark is for */
|
|
|
- struct list_head g_list; /* list of marks by group->i_fsnotify_marks */
|
|
|
|
|
|
|
+ struct list_head g_list; /* list of marks by group->i_fsnotify_marks
|
|
|
|
|
+ * Also reused for queueing mark into
|
|
|
|
|
+ * destroy_list when it's waiting for
|
|
|
|
|
+ * the end of SRCU period before it can
|
|
|
|
|
+ * be freed */
|
|
|
spinlock_t lock; /* protect group and inode */
|
|
spinlock_t lock; /* protect group and inode */
|
|
|
struct hlist_node obj_list; /* list of marks for inode / vfsmount */
|
|
struct hlist_node obj_list; /* list of marks for inode / vfsmount */
|
|
|
struct list_head free_list; /* tmp list used when freeing this mark */
|
|
struct list_head free_list; /* tmp list used when freeing this mark */
|
|
@@ -227,7 +231,6 @@ struct fsnotify_mark {
|
|
|
#define FSNOTIFY_MARK_FLAG_IGNORED_SURV_MODIFY 0x08
|
|
#define FSNOTIFY_MARK_FLAG_IGNORED_SURV_MODIFY 0x08
|
|
|
#define FSNOTIFY_MARK_FLAG_ALIVE 0x10
|
|
#define FSNOTIFY_MARK_FLAG_ALIVE 0x10
|
|
|
unsigned int flags; /* vfsmount or inode mark? */
|
|
unsigned int flags; /* vfsmount or inode mark? */
|
|
|
- struct list_head destroy_list;
|
|
|
|
|
void (*free_mark)(struct fsnotify_mark *mark); /* called on final put+free */
|
|
void (*free_mark)(struct fsnotify_mark *mark); /* called on final put+free */
|
|
|
};
|
|
};
|
|
|
|
|
|