Hello Linus, could you please pull from git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs.git fsnotify The branch contains mainly a rework of fsnotify infrastructure fixing a shortcoming that we have waited for response to fanotify permission events with SRCU read lock held and when the process consuming events was slow to respond the kernel has stalled. It also contains several cleanups of unnecessary indirections in fsnotify framework and a bugfix from Amir fixing leakage of kernel internal errno to userspace. Top of the tree is 6c71100db53e. The full shortlog is: Amir Goldstein (1): fanotify: don't expose EOPENSTALE to userspace Dan Carpenter (1): fsnotify: remove a stray unlock Jan Kara (35): fsnotify: Remove unnecessary tests when showing fdinfo inotify: Remove inode pointers from debug messages fanotify: Move recalculation of inode / vfsmount mask under mark_mutex audit: Abstract hash key handling audit_tree: Use mark flags to check whether mark is alive fsnotify: Update comments fsnotify: Move mark list head from object into dedicated structure fsnotify: Move object pointer to fsnotify_mark_connector fsnotify: Make fsnotify_mark_connector hold inode reference fsnotify: Remove indirection from mark list addition fsnotify: Move fsnotify_destroy_marks() fsnotify: Move locking into fsnotify_recalc_mask() fsnotify: Move locking into fsnotify_find_mark() fsnotify: Determine lock in fsnotify_destroy_marks() fsnotify: Remove indirection from fsnotify_detach_mark() fsnotify: Avoid double locking in fsnotify_detach_from_object() fsnotify: Remove useless list deletion and comment fsnotify: Lock object list with connector lock fsnotify: Free fsnotify_mark_connector when there is no mark attached inotify: Do not drop mark reference under idr_lock fsnotify: Move queueing of mark for destruction into fsnotify_put_mark() fsnotify: Detach mark from object list when last reference is dropped fsnotify: Remove special handling of mark destruction on group shutdown fsnotify: Provide framework for dropping SRCU lock in ->handle_event fsnotify: Pass fsnotify_iter_info into handle_event handler fanotify: Release SRCU lock when waiting for userspace response fsnotify: Remove fsnotify_set_mark_{,ignored_}mask_locked() fsnotify: Remove fsnotify_recalc_{inode|vfsmount}_mask() fsnotify: Inline fsnotify_clear_{inode|vfsmount}_mark_group() fsnotify: Rename fsnotify_clear_marks_by_group_flags() fsnotify: Remove fsnotify_detach_group_marks() fsnotify: Remove fsnotify_find_{inode|vfsmount}_mark() fsnotify: Drop inode_mark.c fsnotify: Add group pointer in fsnotify_init_mark() fsnotify: Move ->free_mark callback to fsnotify_ops The diffstat is fs/inode.c | 3 - fs/mount.h | 2 +- fs/namespace.c | 3 - fs/notify/Makefile | 4 +- fs/notify/dnotify/dnotify.c | 25 +- fs/notify/fanotify/fanotify.c | 26 +- fs/notify/fanotify/fanotify.h | 1 + fs/notify/fanotify/fanotify_user.c | 77 +++-- fs/notify/fdinfo.c | 16 +- fs/notify/fsnotify.c | 107 +++++- fs/notify/fsnotify.h | 48 +-- fs/notify/group.c | 20 +- fs/notify/inode_mark.c | 199 ----------- fs/notify/inotify/inotify.h | 4 +- fs/notify/inotify/inotify_fsnotify.c | 18 +- fs/notify/inotify/inotify_user.c | 81 ++--- fs/notify/mark.c | 642 +++++++++++++++++++++++------------ fs/notify/vfsmount_mark.c | 108 ------ include/linux/fs.h | 4 +- include/linux/fsnotify_backend.h | 95 ++++-- kernel/audit_fsnotify.c | 10 +- kernel/audit_tree.c | 78 +++-- kernel/audit_watch.c | 10 +- kernel/auditsc.c | 5 +- 24 files changed, 815 insertions(+), 771 deletions(-) delete mode 100644 fs/notify/inode_mark.c delete mode 100644 fs/notify/vfsmount_mark.c Thanks Honza -- Jan Kara <jack@xxxxxxxx> SUSE Labs, CR