Blame view

fs/notify/fsnotify.h 1.83 KB
b24413180   Greg Kroah-Hartman   License cleanup: ...
1
  /* SPDX-License-Identifier: GPL-2.0 */
90586523e   Eric Paris   fsnotify: unified...
2
3
4
5
6
7
8
  #ifndef __FS_NOTIFY_FSNOTIFY_H_
  #define __FS_NOTIFY_FSNOTIFY_H_
  
  #include <linux/list.h>
  #include <linux/fsnotify.h>
  #include <linux/srcu.h>
  #include <linux/types.h>
925d1132a   Jan Kara   fsnotify: remove ...
9
  #include "../mount.h"
abc77577a   Jan Kara   fsnotify: Provide...
10
11
12
13
14
  struct fsnotify_iter_info {
  	struct fsnotify_mark *inode_mark;
  	struct fsnotify_mark *vfsmount_mark;
  	int srcu_idx;
  };
a2d8bc6cb   Eric Paris   fsnotify: generic...
15
16
  /* destroy all events sitting in this groups notification queue */
  extern void fsnotify_flush_notify(struct fsnotify_group *group);
75c1be487   Eric Paris   fsnotify: srcu to...
17
18
  /* protects reads of inode and vfsmount marks list */
  extern struct srcu_struct fsnotify_mark_srcu;
8edc6e168   Jan Kara   fanotify: fix not...
19
20
21
  /* compare two groups for sorting of marks lists */
  extern int fsnotify_compare_groups(struct fsnotify_group *a,
  				   struct fsnotify_group *b);
a03e2e4f0   Jan Kara   fsnotify: Determi...
22
  /* Destroy all marks connected via given connector */
08991e83b   Jan Kara   fsnotify: Free fs...
23
  extern void fsnotify_destroy_marks(struct fsnotify_mark_connector __rcu **connp);
925d1132a   Jan Kara   fsnotify: remove ...
24
25
26
  /* run the list of all marks associated with inode and destroy them */
  static inline void fsnotify_clear_marks_by_inode(struct inode *inode)
  {
08991e83b   Jan Kara   fsnotify: Free fs...
27
  	fsnotify_destroy_marks(&inode->i_fsnotify_marks);
925d1132a   Jan Kara   fsnotify: remove ...
28
29
30
31
  }
  /* run the list of all marks associated with vfsmount and destroy them */
  static inline void fsnotify_clear_marks_by_mount(struct vfsmount *mnt)
  {
08991e83b   Jan Kara   fsnotify: Free fs...
32
  	fsnotify_destroy_marks(&real_mount(mnt)->mnt_fsnotify_marks);
925d1132a   Jan Kara   fsnotify: remove ...
33
  }
f09b04a03   Jan Kara   fsnotify: Remove ...
34
35
  /* Wait until all marks queued for destruction are destroyed */
  extern void fsnotify_wait_marks_destroyed(void);
35e481761   Jan Kara   fsnotify: avoid s...
36

c28f7e56e   Eric Paris   fsnotify: parent ...
37
38
39
40
41
  /*
   * update the dentry->d_flags of all of inode's children to indicate if inode cares
   * about events that happen to its children.
   */
  extern void __fsnotify_update_child_dentry_flags(struct inode *inode);
a2d8bc6cb   Eric Paris   fsnotify: generic...
42
43
44
45
  
  /* allocate and destroy and event holder to attach events to notification/access queues */
  extern struct fsnotify_event_holder *fsnotify_alloc_event_holder(void);
  extern void fsnotify_destroy_event_holder(struct fsnotify_event_holder *holder);
90586523e   Eric Paris   fsnotify: unified...
46
  #endif	/* __FS_NOTIFY_FSNOTIFY_H_ */