Merge tag 'for_v4.20-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs
Pull fsnotify updates from Jan Kara: "Amir's patches to implement superblock fanotify watches, Xiaoming's patch to enable reporting of thread IDs in fanotify events instead of TGIDs (sadly the patch got mis-attributed to Amir and I've noticed only now), and a fix of possible oops on umount caused by fsnotify infrastructure" * tag 'for_v4.20-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs: fsnotify: Fix busy inodes during unmount fs: group frequently accessed fields of struct super_block together fanotify: support reporting thread id instead of process id fanotify: add BUILD_BUG_ON() to count the bits of fanotify constants fsnotify: convert runtime BUG_ON() to BUILD_BUG_ON() fanotify: deprecate uapi FAN_ALL_* constants fanotify: simplify handling of FAN_ONDIR fsnotify: generalize handling of extra event flags fanotify: fix collision of internal and uapi mark flags fanotify: store fanotify_init() flags in group's fanotify_data fanotify: add API to attach/detach super block mark fsnotify: send path type events to group with super block marks fsnotify: add super block object type
This commit is contained in:
@@ -1412,17 +1412,26 @@ struct super_block {
|
||||
|
||||
struct sb_writers s_writers;
|
||||
|
||||
/*
|
||||
* Keep s_fs_info, s_time_gran, s_fsnotify_mask, and
|
||||
* s_fsnotify_marks together for cache efficiency. They are frequently
|
||||
* accessed and rarely modified.
|
||||
*/
|
||||
void *s_fs_info; /* Filesystem private info */
|
||||
|
||||
/* Granularity of c/m/atime in ns (cannot be worse than a second) */
|
||||
u32 s_time_gran;
|
||||
#ifdef CONFIG_FSNOTIFY
|
||||
__u32 s_fsnotify_mask;
|
||||
struct fsnotify_mark_connector __rcu *s_fsnotify_marks;
|
||||
#endif
|
||||
|
||||
char s_id[32]; /* Informational name */
|
||||
uuid_t s_uuid; /* UUID */
|
||||
|
||||
void *s_fs_info; /* Filesystem private info */
|
||||
unsigned int s_max_links;
|
||||
fmode_t s_mode;
|
||||
|
||||
/* Granularity of c/m/atime in ns.
|
||||
Cannot be worse than a second */
|
||||
u32 s_time_gran;
|
||||
|
||||
/*
|
||||
* The next field is for VFS *only*. No filesystems have any business
|
||||
* even looking at it. You had been warned.
|
||||
@@ -1447,6 +1456,9 @@ struct super_block {
|
||||
/* Number of inodes with nlink == 0 but still referenced */
|
||||
atomic_long_t s_remove_count;
|
||||
|
||||
/* Pending fsnotify inode refs */
|
||||
atomic_long_t s_fsnotify_inode_refs;
|
||||
|
||||
/* Being remounted read-only */
|
||||
int s_readonly_remount;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user