fsnotify.h 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. /* SPDX-License-Identifier: GPL-2.0 */
  2. #ifndef __FS_NOTIFY_FSNOTIFY_H_
  3. #define __FS_NOTIFY_FSNOTIFY_H_
  4. #include <linux/list.h>
  5. #include <linux/fsnotify.h>
  6. #include <linux/srcu.h>
  7. #include <linux/types.h>
  8. #include "../mount.h"
  9. /* destroy all events sitting in this groups notification queue */
  10. extern void fsnotify_flush_notify(struct fsnotify_group *group);
  11. /* protects reads of inode and vfsmount marks list */
  12. extern struct srcu_struct fsnotify_mark_srcu;
  13. /* compare two groups for sorting of marks lists */
  14. extern int fsnotify_compare_groups(struct fsnotify_group *a,
  15. struct fsnotify_group *b);
  16. /* Destroy all marks connected via given connector */
  17. extern void fsnotify_destroy_marks(struct fsnotify_mark_connector __rcu **connp);
  18. /* run the list of all marks associated with inode and destroy them */
  19. static inline void fsnotify_clear_marks_by_inode(struct inode *inode)
  20. {
  21. fsnotify_destroy_marks(&inode->i_fsnotify_marks);
  22. }
  23. /* run the list of all marks associated with vfsmount and destroy them */
  24. static inline void fsnotify_clear_marks_by_mount(struct vfsmount *mnt)
  25. {
  26. fsnotify_destroy_marks(&real_mount(mnt)->mnt_fsnotify_marks);
  27. }
  28. /* Wait until all marks queued for destruction are destroyed */
  29. extern void fsnotify_wait_marks_destroyed(void);
  30. /*
  31. * update the dentry->d_flags of all of inode's children to indicate if inode cares
  32. * about events that happen to its children.
  33. */
  34. extern void __fsnotify_update_child_dentry_flags(struct inode *inode);
  35. /* allocate and destroy and event holder to attach events to notification/access queues */
  36. extern struct fsnotify_event_holder *fsnotify_alloc_event_holder(void);
  37. extern void fsnotify_destroy_event_holder(struct fsnotify_event_holder *holder);
  38. #endif /* __FS_NOTIFY_FSNOTIFY_H_ */