On Wed, 2014-03-26 at 19:47 +0100, Jan Kara wrote: > On Wed 26-03-14 16:30:05, xypron.g...@gmx.de wrote: > > From: Heinrich Schuchardt <xypron.g...@gmx.de> > > > > https://lkml.org/lkml/2011/1/12/112 > > holds a patch by Tvrtko Ursulin > > > > Avoid having to provide a fake/invalid fd and path when flushing marks > > > > Currently for a group to flush marks it has set it needs to > > provide a fake or invalid (but resolvable) file descriptor > > and path when calling fanotify_mark. This patch pulls the > > flush handling a bit up so file descriptor and path are > > completely ignored when flushing. > > > > Eric wrote it was applied. > > https://lkml.org/lkml/2011/1/19/321 > > > > Unfortunately it is still not in the main stream code and the problem > > remains. > > > > I reworked the patch to be applicable again (the signature of fanotify_mark > > has changed since Tvrtko's work). > > > > Signed-off-by: Heinrich Schuchardt <xypron.g...@gmx.de> > The patch looks good to me. You can add: > Reviewed-by: Jan Kara <j...@suse.cz> > > Andrew, can you please add the patch to the fanotify patches you already > carry? Thanks!
Acked-by: Eric Paris <epa...@redhat.com> that would be great Andrew! > > Honza > > > --- > > fs/notify/fanotify/fanotify_user.c | 17 ++++++++++------- > > 1 file changed, 10 insertions(+), 7 deletions(-) > > > > diff --git a/fs/notify/fanotify/fanotify_user.c > > b/fs/notify/fanotify/fanotify_user.c > > index 287a22c..05bb38a 100644 > > --- a/fs/notify/fanotify/fanotify_user.c > > +++ b/fs/notify/fanotify/fanotify_user.c > > @@ -856,6 +856,15 @@ SYSCALL_DEFINE5(fanotify_mark, int, fanotify_fd, > > unsigned int, flags, > > group->priority == FS_PRIO_0) > > goto fput_and_out; > > > > + if (flags & FAN_MARK_FLUSH) { > > + ret = 0; > > + if (flags & FAN_MARK_MOUNT) > > + fsnotify_clear_vfsmount_marks_by_group(group); > > + else > > + fsnotify_clear_inode_marks_by_group(group); > > + goto fput_and_out; > > + } > > + > > ret = fanotify_find_path(dfd, pathname, &path, flags); > > if (ret) > > goto fput_and_out; > > @@ -867,7 +876,7 @@ SYSCALL_DEFINE5(fanotify_mark, int, fanotify_fd, > > unsigned int, flags, > > mnt = path.mnt; > > > > /* create/update an inode mark */ > > - switch (flags & (FAN_MARK_ADD | FAN_MARK_REMOVE | FAN_MARK_FLUSH)) { > > + switch (flags & (FAN_MARK_ADD | FAN_MARK_REMOVE)) { > > case FAN_MARK_ADD: > > if (flags & FAN_MARK_MOUNT) > > ret = fanotify_add_vfsmount_mark(group, mnt, mask, > > flags); > > @@ -880,12 +889,6 @@ SYSCALL_DEFINE5(fanotify_mark, int, fanotify_fd, > > unsigned int, flags, > > else > > ret = fanotify_remove_inode_mark(group, inode, mask, > > flags); > > break; > > - case FAN_MARK_FLUSH: > > - if (flags & FAN_MARK_MOUNT) > > - fsnotify_clear_vfsmount_marks_by_group(group); > > - else > > - fsnotify_clear_inode_marks_by_group(group); > > - break; > > default: > > ret = -EINVAL; > > } > > -- > > 1.7.10.4 > > -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/