Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3bb66d7f authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge branch 'for-linus' of git://git.infradead.org/users/eparis/notify

* 'for-linus' of git://git.infradead.org/users/eparis/notify:
  fsnotify: allow groups to set freeing_mark to null
  inotify/dnotify: should_send_event shouldn't match on FS_EVENT_ON_CHILD
  dnotify: do not bother to lock entry->lock when reading mask
  dnotify: do not use ?true:false when assigning to a bool
  fsnotify: move events should indicate the event was on a child
  inotify: reimplement inotify using fsnotify
  fsnotify: handle filesystem unmounts with fsnotify marks
  fsnotify: fsnotify marks on inodes pin them in core
  fsnotify: allow groups to add private data to events
  fsnotify: add correlations between events
  fsnotify: include pathnames with entries when possible
  fsnotify: generic notification queue and waitq
  dnotify: reimplement dnotify using fsnotify
  fsnotify: parent event notification
  fsnotify: add marks to inodes so groups can interpret how to handle those inodes
  fsnotify: unified filesystem notification backend
parents 512626a0 a092ee20
Loading
Loading
Loading
Loading
+5 −3
Original line number Original line Diff line number Diff line
@@ -1802,10 +1802,10 @@ F: drivers/char/epca*
F:	drivers/char/digi*
F:	drivers/char/digi*


DIRECTORY NOTIFICATION (DNOTIFY)
DIRECTORY NOTIFICATION (DNOTIFY)
P:	Stephen Rothwell
P:	Eric Paris
M:	sfr@canb.auug.org.au
M:	eparis@parisplace.org
L:	linux-kernel@vger.kernel.org
L:	linux-kernel@vger.kernel.org
S:	Supported
S:	Maintained
F:	Documentation/filesystems/dnotify.txt
F:	Documentation/filesystems/dnotify.txt
F:	fs/notify/dnotify/
F:	fs/notify/dnotify/
F:	include/linux/dnotify.h
F:	include/linux/dnotify.h
@@ -2858,6 +2858,8 @@ P: John McCutchan
M:	john@johnmccutchan.com
M:	john@johnmccutchan.com
P:	Robert Love
P:	Robert Love
M:	rlove@rlove.org
M:	rlove@rlove.org
P:	Eric Paris
M:	eparis@parisplace.org
L:	linux-kernel@vger.kernel.org
L:	linux-kernel@vger.kernel.org
S:	Maintained
S:	Maintained
F:	Documentation/filesystems/inotify.txt
F:	Documentation/filesystems/inotify.txt
+10 −0
Original line number Original line Diff line number Diff line
@@ -22,6 +22,7 @@
#include <linux/cdev.h>
#include <linux/cdev.h>
#include <linux/bootmem.h>
#include <linux/bootmem.h>
#include <linux/inotify.h>
#include <linux/inotify.h>
#include <linux/fsnotify.h>
#include <linux/mount.h>
#include <linux/mount.h>
#include <linux/async.h>
#include <linux/async.h>


@@ -189,6 +190,10 @@ struct inode *inode_init_always(struct super_block *sb, struct inode *inode)
	inode->i_private = NULL;
	inode->i_private = NULL;
	inode->i_mapping = mapping;
	inode->i_mapping = mapping;


#ifdef CONFIG_FSNOTIFY
	inode->i_fsnotify_mask = 0;
#endif

	return inode;
	return inode;


out_free_security:
out_free_security:
@@ -221,6 +226,7 @@ void destroy_inode(struct inode *inode)
	BUG_ON(inode_has_buffers(inode));
	BUG_ON(inode_has_buffers(inode));
	ima_inode_free(inode);
	ima_inode_free(inode);
	security_inode_free(inode);
	security_inode_free(inode);
	fsnotify_inode_delete(inode);
	if (inode->i_sb->s_op->destroy_inode)
	if (inode->i_sb->s_op->destroy_inode)
		inode->i_sb->s_op->destroy_inode(inode);
		inode->i_sb->s_op->destroy_inode(inode);
	else
	else
@@ -252,6 +258,9 @@ void inode_init_once(struct inode *inode)
	INIT_LIST_HEAD(&inode->inotify_watches);
	INIT_LIST_HEAD(&inode->inotify_watches);
	mutex_init(&inode->inotify_mutex);
	mutex_init(&inode->inotify_mutex);
#endif
#endif
#ifdef CONFIG_FSNOTIFY
	INIT_HLIST_HEAD(&inode->i_fsnotify_mark_entries);
#endif
}
}
EXPORT_SYMBOL(inode_init_once);
EXPORT_SYMBOL(inode_init_once);


@@ -398,6 +407,7 @@ int invalidate_inodes(struct super_block *sb)
	mutex_lock(&iprune_mutex);
	mutex_lock(&iprune_mutex);
	spin_lock(&inode_lock);
	spin_lock(&inode_lock);
	inotify_unmount_inodes(&sb->s_inodes);
	inotify_unmount_inodes(&sb->s_inodes);
	fsnotify_unmount_inodes(&sb->s_inodes);
	busy = invalidate_list(&sb->s_inodes, &throw_away);
	busy = invalidate_list(&sb->s_inodes, &throw_away);
	spin_unlock(&inode_lock);
	spin_unlock(&inode_lock);


+13 −0
Original line number Original line Diff line number Diff line
config FSNOTIFY
	bool "Filesystem notification backend"
	default y
	---help---
	   fsnotify is a backend for filesystem notification.  fsnotify does
	   not provide any userspace interface but does provide the basis
	   needed for other notification schemes such as dnotify, inotify,
	   and fanotify.

	   Say Y here to enable fsnotify suport.

	   If unsure, say Y.

source "fs/notify/dnotify/Kconfig"
source "fs/notify/dnotify/Kconfig"
source "fs/notify/inotify/Kconfig"
source "fs/notify/inotify/Kconfig"
+2 −0
Original line number Original line Diff line number Diff line
obj-$(CONFIG_FSNOTIFY)		+= fsnotify.o notification.o group.o inode_mark.o

obj-y			+= dnotify/
obj-y			+= dnotify/
obj-y			+= inotify/
obj-y			+= inotify/
+1 −0
Original line number Original line Diff line number Diff line
config DNOTIFY
config DNOTIFY
	bool "Dnotify support"
	bool "Dnotify support"
	depends on FSNOTIFY
	default y
	default y
	help
	help
	  Dnotify is a directory-based per-fd file change notification system
	  Dnotify is a directory-based per-fd file change notification system
Loading