From: Jan Kara <jack@suse.cz>
To: Amir Goldstein <amir73il@gmail.com>
Cc: Jan Kara <jack@suse.cz>,
Marko Rauhamaa <marko.rauhamaa@f-secure.com>,
linux-fsdevel@vger.kernel.org
Subject: Re: [PATCH] fsnotify: fix ignore mask logic in fsnotify()
Date: Mon, 3 Sep 2018 14:00:42 +0200 [thread overview]
Message-ID: <20180903120042.GH10027@quack2.suse.cz> (raw)
In-Reply-To: <20180901064001.23430-1-amir73il@gmail.com>
On Sat 01-09-18 09:40:01, Amir Goldstein wrote:
> Commit 92183a42898d ("fsnotify: fix ignore mask logic in
> send_to_group()") acknoledges the use case of ignoring an event on
> an inode mark, because of an ignore mask on a mount mark of the same
> group (i.e. I want to get all events on this file, except for the events
> that came from that mount).
>
> This change depends on correctly merging the inode marks and mount marks
> group lists, so that the mount mark ignore mask would be tested in
> send_to_group(). Alas, the merging of the lists did not take into
> account the case where event in question is not in the mask of any of
> the mount marks.
>
> To fix this, completely remove the tests for inode and mount event masks
> from the lists merging code.
>
> Fixes: 92183a42898d ("fsnotify: fix ignore mask logic in send_to_group")
> Signed-off-by: Amir Goldstein <amir73il@gmail.com>
Great, thanks. Added to my tree.
Honza
> ---
>
> Jan,
>
> Posting this fix independent from the super block mark series,
> so you can send it in this cycle if you wish.
>
> New LTP test fanotify10 from [1] demonstrates the problem and
> the fix. Note that the test verifies the expected behavior as
> agreed in this discussion [2].
>
> Thanks,
> Amir.
>
> [1] https://github.com/amir73il/ltp/commits/fanotify_sb
> [2] https://marc.info/?l=linux-fsdevel&m=152284295703053&w=2
>
> fs/notify/fsnotify.c | 13 +++----------
> 1 file changed, 3 insertions(+), 10 deletions(-)
>
> diff --git a/fs/notify/fsnotify.c b/fs/notify/fsnotify.c
> index 775e731d3016..2971803d151c 100644
> --- a/fs/notify/fsnotify.c
> +++ b/fs/notify/fsnotify.c
> @@ -357,16 +357,9 @@ int fsnotify(struct inode *to_tell, __u32 mask, const void *data, int data_is,
>
> iter_info.srcu_idx = srcu_read_lock(&fsnotify_mark_srcu);
>
> - if ((mask & FS_MODIFY) ||
> - (test_mask & to_tell->i_fsnotify_mask)) {
> - iter_info.marks[FSNOTIFY_OBJ_TYPE_INODE] =
> - fsnotify_first_mark(&to_tell->i_fsnotify_marks);
> - }
> -
> - if (mnt && ((mask & FS_MODIFY) ||
> - (test_mask & mnt->mnt_fsnotify_mask))) {
> - iter_info.marks[FSNOTIFY_OBJ_TYPE_INODE] =
> - fsnotify_first_mark(&to_tell->i_fsnotify_marks);
> + iter_info.marks[FSNOTIFY_OBJ_TYPE_INODE] =
> + fsnotify_first_mark(&to_tell->i_fsnotify_marks);
> + if (mnt) {
> iter_info.marks[FSNOTIFY_OBJ_TYPE_VFSMOUNT] =
> fsnotify_first_mark(&mnt->mnt_fsnotify_marks);
> }
> --
> 2.17.1
>
--
Jan Kara <jack@suse.com>
SUSE Labs, CR
prev parent reply other threads:[~2018-09-03 16:20 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-09-01 6:40 [PATCH] fsnotify: fix ignore mask logic in fsnotify() Amir Goldstein
2018-09-03 12:00 ` Jan Kara [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20180903120042.GH10027@quack2.suse.cz \
--to=jack@suse.cz \
--cc=amir73il@gmail.com \
--cc=linux-fsdevel@vger.kernel.org \
--cc=marko.rauhamaa@f-secure.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).