Commit c9778a98 authored by Eric Paris's avatar Eric Paris

fanotify: allow ignored_masks to survive modify

Some users may want to truely ignore an inode even if it has been modified.
Say you are wanting a mount which contains a log file and you really don't
want any notification about that file.  This patch allows the listener to
do that.
Signed-off-by: default avatarEric Paris <eparis@redhat.com>
parent c908370f
...@@ -375,6 +375,8 @@ static __u32 fanotify_mark_add_to_mask(struct fsnotify_mark *fsn_mark, ...@@ -375,6 +375,8 @@ static __u32 fanotify_mark_add_to_mask(struct fsnotify_mark *fsn_mark,
} else { } else {
oldmask = fsn_mark->ignored_mask; oldmask = fsn_mark->ignored_mask;
fsnotify_set_mark_ignored_mask_locked(fsn_mark, (oldmask | mask)); fsnotify_set_mark_ignored_mask_locked(fsn_mark, (oldmask | mask));
if (flags & FAN_MARK_IGNORED_SURV_MODIFY)
fsn_mark->flags |= FSNOTIFY_MARK_FLAG_IGNORED_SURV_MODIFY;
} }
spin_unlock(&fsn_mark->lock); spin_unlock(&fsn_mark->lock);
......
...@@ -31,13 +31,15 @@ ...@@ -31,13 +31,15 @@
#define FAN_MARK_ONLYDIR 0x00000008 #define FAN_MARK_ONLYDIR 0x00000008
#define FAN_MARK_MOUNT 0x00000010 #define FAN_MARK_MOUNT 0x00000010
#define FAN_MARK_IGNORED_MASK 0x00000020 #define FAN_MARK_IGNORED_MASK 0x00000020
#define FAN_MARK_IGNORED_SURV_MODIFY 0x00000040
#define FAN_ALL_MARK_FLAGS (FAN_MARK_ADD |\ #define FAN_ALL_MARK_FLAGS (FAN_MARK_ADD |\
FAN_MARK_REMOVE |\ FAN_MARK_REMOVE |\
FAN_MARK_DONT_FOLLOW |\ FAN_MARK_DONT_FOLLOW |\
FAN_MARK_ONLYDIR |\ FAN_MARK_ONLYDIR |\
FAN_MARK_MOUNT |\ FAN_MARK_MOUNT |\
FAN_MARK_IGNORED_MASK) FAN_MARK_IGNORED_MASK |\
FAN_MARK_IGNORED_SURV_MODIFY)
/* /*
* All of the events - we build the list by hand so that we can add flags in * All of the events - we build the list by hand so that we can add flags in
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment