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: Eric Paris <eparis@redhat.com>
This commit is contained in:
Родитель
c908370fc1
Коммит
c9778a98e7
|
@ -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 @@
|
||||||
#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
|
||||||
|
|
Загрузка…
Ссылка в новой задаче