lkml.org 
[lkml]   [2010]   [Jul]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Subject[RESEND][RFC][PATCH] fsnotify: track all events on filesystem
Date
From
(Resending, this time with fsnotify maintainer cc'ed)

This patch allows notification groups to get events on the entire filesystem,
not just on registered inodes.

I want to use it for a notification group that tracks all changes to the
filesystem in order to do faster backups.

Is this a good or bad idea?

/Jakob


diff --git a/fs/notify/fsnotify.c b/fs/notify/fsnotify.c
index fcc2f06..aa9e204 100644
--- a/fs/notify/fsnotify.c
+++ b/fs/notify/fsnotify.c
@@ -147,7 +147,9 @@ void fsnotify(struct inode *to_tell, __u32 mask, void *data, int data_is, const
if (!(test_mask & fsnotify_mask))
return;

- if (!(test_mask & to_tell->i_fsnotify_mask))
+ if (!
+ (test_mask &
+ (to_tell->i_fsnotify_mask | to_tell->i_sb->s_fsnotify_mask)))
return;
/*
* SRCU!! the groups list is very very much read only and the path is
diff --git a/include/linux/fs.h b/include/linux/fs.h
index 68ca1b0..102acf5 100644
--- a/include/linux/fs.h
+++ b/include/linux/fs.h
@@ -1382,6 +1382,9 @@ struct super_block {
* generic_show_options()
*/
char *s_options;
+#ifdef CONFIG_FSNOTIFY
+ __u32 s_fsnotify_mask;
+#endif
};

extern struct timespec current_fs_time(struct super_block *sb);

\
 
 \ /
  Last update: 2010-07-13 17:49    [W:0.037 / U:0.032 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site