linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/5] fsnotify/vfsmount: add fsnotify fields to struct vfsmount
@ 2009-12-03  5:53 Eric Paris
  2009-12-03  5:53 ` [PATCH 2/5] fsnotify: vfsmount marks generic functions Eric Paris
                   ` (4 more replies)
  0 siblings, 5 replies; 9+ messages in thread
From: Eric Paris @ 2009-12-03  5:53 UTC (permalink / raw)
  To: linux-kernel, linux-fsdevel; +Cc: viro, hch, agruen, eparis

From: Andreas Gruenbacher <agruen@suse.de>

This patch adds the list and mask fields needed to support vfsmount marks.
These are the same fields fsnotify needs on an inode.  They are not used,
just declared and we note where the cleanup hook should be (the function is
not yet defined)

Signed-off-by: Andreas Gruenbacher <agruen@suse.de>
Signed-off-by: Eric Paris <eparis@redhat.com>
---

 fs/namespace.c        |    4 ++++
 fs/notify/fsnotify.c  |    4 +---
 include/linux/mount.h |    6 +++++-
 3 files changed, 10 insertions(+), 4 deletions(-)

diff --git a/fs/namespace.c b/fs/namespace.c
index 7d70d63..2bff3b1 100644
--- a/fs/namespace.c
+++ b/fs/namespace.c
@@ -29,6 +29,7 @@
 #include <linux/log2.h>
 #include <linux/idr.h>
 #include <linux/fs_struct.h>
+#include <linux/fsnotify.h>
 #include <asm/uaccess.h>
 #include <asm/unistd.h>
 #include "pnode.h"
@@ -150,6 +151,9 @@ struct vfsmount *alloc_vfsmnt(const char *name)
 		INIT_LIST_HEAD(&mnt->mnt_share);
 		INIT_LIST_HEAD(&mnt->mnt_slave_list);
 		INIT_LIST_HEAD(&mnt->mnt_slave);
+#ifdef CONFIG_FSNOTIFY
+		INIT_HLIST_HEAD(&mnt->mnt_fsnotify_marks);
+#endif
 #ifdef CONFIG_SMP
 		mnt->mnt_writers = alloc_percpu(int);
 		if (!mnt->mnt_writers)
diff --git a/fs/notify/fsnotify.c b/fs/notify/fsnotify.c
index b076b06..8ed9fb5 100644
--- a/fs/notify/fsnotify.c
+++ b/fs/notify/fsnotify.c
@@ -162,9 +162,7 @@ static bool needed_by_vfsmount(__u32 test_mask, struct vfsmount *mnt)
 	if (!mnt)
 		return false;
 
-	/* hook in this when mnt->mnt_fsnotify_mask is defined */
-	/* return (test_mask & path->mnt->mnt_fsnotify_mask); */
-	return false;
+	return (test_mask & mnt->mnt_fsnotify_mask);
 }
 /*
  * This is the main call to fsnotify.  The VFS calls into hook specific functions
diff --git a/include/linux/mount.h b/include/linux/mount.h
index 5d52753..9d542fc 100644
--- a/include/linux/mount.h
+++ b/include/linux/mount.h
@@ -45,7 +45,11 @@ struct vfsmount {
 	struct list_head mnt_mounts;	/* list of children, anchored here */
 	struct list_head mnt_child;	/* and going through their mnt_child */
 	int mnt_flags;
-	/* 4 bytes hole on 64bits arches */
+	/* 4 bytes hole on 64bits arches without fsnotify */
+#ifdef CONFIG_FSNOTIFY
+	__u32 mnt_fsnotify_mask;
+	struct hlist_head mnt_fsnotify_marks;
+#endif
 	const char *mnt_devname;	/* Name of device e.g. /dev/dsk/hda1 */
 	struct list_head mnt_list;
 	struct list_head mnt_expire;	/* link in fs-specific expiry list */


^ permalink raw reply related	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2009-12-15 11:12 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-12-03  5:53 [PATCH 1/5] fsnotify/vfsmount: add fsnotify fields to struct vfsmount Eric Paris
2009-12-03  5:53 ` [PATCH 2/5] fsnotify: vfsmount marks generic functions Eric Paris
2009-12-03  5:53 ` [PATCH 3/5] fsnotify: Infrastructure for per-mount watches Eric Paris
2009-12-03  5:53 ` [PATCH 4/5] fanotify: should_send_event needs to handle vfsmounts Eric Paris
2009-12-03  5:53 ` [PATCH 5/5] fanotify: infrastructure to add an remove marks on vfsmounts Eric Paris
2009-12-04 15:39 ` [PATCH 1/5] fsnotify/vfsmount: add fsnotify fields to struct vfsmount Christoph Hellwig
2009-12-04 15:46   ` Eric Paris
2009-12-10 16:31   ` Andreas Gruenbacher
2009-12-15 11:12     ` Niraj kumar

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).