VisionFive2 Linux kernel

StarFive Tech Linux Kernel for VisionFive (JH7110) boards (mirror)

More than 9999 Commits   32 Branches   54 Tags
b24413180f560 (Greg Kroah-Hartman 2017-11-01 15:07:57 +0100  1) /* SPDX-License-Identifier: GPL-2.0 */
90586523eb4b3 (Eric Paris         2009-05-21 17:01:20 -0400  2) #ifndef __FS_NOTIFY_FSNOTIFY_H_
90586523eb4b3 (Eric Paris         2009-05-21 17:01:20 -0400  3) #define __FS_NOTIFY_FSNOTIFY_H_
90586523eb4b3 (Eric Paris         2009-05-21 17:01:20 -0400  4) 
90586523eb4b3 (Eric Paris         2009-05-21 17:01:20 -0400  5) #include <linux/list.h>
90586523eb4b3 (Eric Paris         2009-05-21 17:01:20 -0400  6) #include <linux/fsnotify.h>
90586523eb4b3 (Eric Paris         2009-05-21 17:01:20 -0400  7) #include <linux/srcu.h>
90586523eb4b3 (Eric Paris         2009-05-21 17:01:20 -0400  8) #include <linux/types.h>
90586523eb4b3 (Eric Paris         2009-05-21 17:01:20 -0400  9) 
925d1132a03e3 (Jan Kara           2015-09-04 15:43:09 -0700 10) #include "../mount.h"
925d1132a03e3 (Jan Kara           2015-09-04 15:43:09 -0700 11) 
36f10f55ff1d2 (Amir Goldstein     2018-06-23 17:54:49 +0300 12) static inline struct inode *fsnotify_conn_inode(
36f10f55ff1d2 (Amir Goldstein     2018-06-23 17:54:49 +0300 13) 				struct fsnotify_mark_connector *conn)
b812a9f589637 (Amir Goldstein     2018-06-23 17:54:48 +0300 14) {
36f10f55ff1d2 (Amir Goldstein     2018-06-23 17:54:49 +0300 15) 	return container_of(conn->obj, struct inode, i_fsnotify_marks);
b812a9f589637 (Amir Goldstein     2018-06-23 17:54:48 +0300 16) }
b812a9f589637 (Amir Goldstein     2018-06-23 17:54:48 +0300 17) 
36f10f55ff1d2 (Amir Goldstein     2018-06-23 17:54:49 +0300 18) static inline struct mount *fsnotify_conn_mount(
36f10f55ff1d2 (Amir Goldstein     2018-06-23 17:54:49 +0300 19) 				struct fsnotify_mark_connector *conn)
b812a9f589637 (Amir Goldstein     2018-06-23 17:54:48 +0300 20) {
36f10f55ff1d2 (Amir Goldstein     2018-06-23 17:54:49 +0300 21) 	return container_of(conn->obj, struct mount, mnt_fsnotify_marks);
b812a9f589637 (Amir Goldstein     2018-06-23 17:54:48 +0300 22) }
b812a9f589637 (Amir Goldstein     2018-06-23 17:54:48 +0300 23) 
1e6cb72399fd5 (Amir Goldstein     2018-09-01 10:41:11 +0300 24) static inline struct super_block *fsnotify_conn_sb(
1e6cb72399fd5 (Amir Goldstein     2018-09-01 10:41:11 +0300 25) 				struct fsnotify_mark_connector *conn)
1e6cb72399fd5 (Amir Goldstein     2018-09-01 10:41:11 +0300 26) {
1e6cb72399fd5 (Amir Goldstein     2018-09-01 10:41:11 +0300 27) 	return container_of(conn->obj, struct super_block, s_fsnotify_marks);
1e6cb72399fd5 (Amir Goldstein     2018-09-01 10:41:11 +0300 28) }
1e6cb72399fd5 (Amir Goldstein     2018-09-01 10:41:11 +0300 29) 
a2d8bc6cb4a30 (Eric Paris         2009-05-21 17:01:37 -0400 30) /* destroy all events sitting in this groups notification queue */
a2d8bc6cb4a30 (Eric Paris         2009-05-21 17:01:37 -0400 31) extern void fsnotify_flush_notify(struct fsnotify_group *group);
a2d8bc6cb4a30 (Eric Paris         2009-05-21 17:01:37 -0400 32) 
75c1be487a690 (Eric Paris         2010-07-28 10:18:38 -0400 33) /* protects reads of inode and vfsmount marks list */
75c1be487a690 (Eric Paris         2010-07-28 10:18:38 -0400 34) extern struct srcu_struct fsnotify_mark_srcu;
75c1be487a690 (Eric Paris         2010-07-28 10:18:38 -0400 35) 
8edc6e1688fc8 (Jan Kara           2014-11-13 15:19:33 -0800 36) /* compare two groups for sorting of marks lists */
8edc6e1688fc8 (Jan Kara           2014-11-13 15:19:33 -0800 37) extern int fsnotify_compare_groups(struct fsnotify_group *a,
8edc6e1688fc8 (Jan Kara           2014-11-13 15:19:33 -0800 38) 				   struct fsnotify_group *b);
8edc6e1688fc8 (Jan Kara           2014-11-13 15:19:33 -0800 39) 
9b6e543450dc0 (Amir Goldstein     2018-06-23 17:54:47 +0300 40) /* Destroy all marks attached to an object via connector */
9b6e543450dc0 (Amir Goldstein     2018-06-23 17:54:47 +0300 41) extern void fsnotify_destroy_marks(fsnotify_connp_t *connp);
925d1132a03e3 (Jan Kara           2015-09-04 15:43:09 -0700 42) /* run the list of all marks associated with inode and destroy them */
925d1132a03e3 (Jan Kara           2015-09-04 15:43:09 -0700 43) static inline void fsnotify_clear_marks_by_inode(struct inode *inode)
925d1132a03e3 (Jan Kara           2015-09-04 15:43:09 -0700 44) {
08991e83b7286 (Jan Kara           2017-02-01 09:21:58 +0100 45) 	fsnotify_destroy_marks(&inode->i_fsnotify_marks);
925d1132a03e3 (Jan Kara           2015-09-04 15:43:09 -0700 46) }
925d1132a03e3 (Jan Kara           2015-09-04 15:43:09 -0700 47) /* run the list of all marks associated with vfsmount and destroy them */
925d1132a03e3 (Jan Kara           2015-09-04 15:43:09 -0700 48) static inline void fsnotify_clear_marks_by_mount(struct vfsmount *mnt)
925d1132a03e3 (Jan Kara           2015-09-04 15:43:09 -0700 49) {
08991e83b7286 (Jan Kara           2017-02-01 09:21:58 +0100 50) 	fsnotify_destroy_marks(&real_mount(mnt)->mnt_fsnotify_marks);
925d1132a03e3 (Jan Kara           2015-09-04 15:43:09 -0700 51) }
1e6cb72399fd5 (Amir Goldstein     2018-09-01 10:41:11 +0300 52) /* run the list of all marks associated with sb and destroy them */
1e6cb72399fd5 (Amir Goldstein     2018-09-01 10:41:11 +0300 53) static inline void fsnotify_clear_marks_by_sb(struct super_block *sb)
1e6cb72399fd5 (Amir Goldstein     2018-09-01 10:41:11 +0300 54) {
1e6cb72399fd5 (Amir Goldstein     2018-09-01 10:41:11 +0300 55) 	fsnotify_destroy_marks(&sb->s_fsnotify_marks);
1e6cb72399fd5 (Amir Goldstein     2018-09-01 10:41:11 +0300 56) }
35e481761cdc6 (Jan Kara           2016-05-19 17:08:59 -0700 57) 
c28f7e56e9d95 (Eric Paris         2009-05-21 17:01:29 -0400 58) /*
c28f7e56e9d95 (Eric Paris         2009-05-21 17:01:29 -0400 59)  * update the dentry->d_flags of all of inode's children to indicate if inode cares
c28f7e56e9d95 (Eric Paris         2009-05-21 17:01:29 -0400 60)  * about events that happen to its children.
c28f7e56e9d95 (Eric Paris         2009-05-21 17:01:29 -0400 61)  */
c28f7e56e9d95 (Eric Paris         2009-05-21 17:01:29 -0400 62) extern void __fsnotify_update_child_dentry_flags(struct inode *inode);
a2d8bc6cb4a30 (Eric Paris         2009-05-21 17:01:37 -0400 63) 
a2d8bc6cb4a30 (Eric Paris         2009-05-21 17:01:37 -0400 64) /* allocate and destroy and event holder to attach events to notification/access queues */
a2d8bc6cb4a30 (Eric Paris         2009-05-21 17:01:37 -0400 65) extern struct fsnotify_event_holder *fsnotify_alloc_event_holder(void);
a2d8bc6cb4a30 (Eric Paris         2009-05-21 17:01:37 -0400 66) extern void fsnotify_destroy_event_holder(struct fsnotify_event_holder *holder);
a2d8bc6cb4a30 (Eric Paris         2009-05-21 17:01:37 -0400 67) 
4a0b20be60bf3 (Ben Dooks          2019-10-15 14:25:18 +0100 68) extern struct kmem_cache *fsnotify_mark_connector_cachep;
4a0b20be60bf3 (Ben Dooks          2019-10-15 14:25:18 +0100 69) 
90586523eb4b3 (Eric Paris         2009-05-21 17:01:20 -0400 70) #endif	/* __FS_NOTIFY_FSNOTIFY_H_ */