From: Lino Sanfilippo <LinoSanfilippo@gmx.de>
To: Jan Kara <jack@suse.cz>
Cc: eparis@redhat.com, linux-kernel@vger.kernel.org,
linux-fsdevel@vger.kernel.org
Subject: Re: [PATCH 3/3] fanotify: fix inconsistent behaviour regarding flag FAN_ONDIR
Date: Tue, 02 Dec 2014 03:03:45 +0100 [thread overview]
Message-ID: <547D1E01.90900@gmx.de> (raw)
In-Reply-To: <20141201100547.GD16185@quack.suse.cz>
Hi,
On 01.12.2014 11:05, Jan Kara wrote:
> On Sun 30-11-14 00:37:38, Lino Sanfilippo wrote:
>> Before flag FAN_ONDIR was implicitly set in a marks ignored mask. This led to
>> some inconsistent behaviour:
>>
>> 1. It was not possible to remove the flag from the ignored mask, once it was set
>> (implicitly) with a call like
>>
>> fanotify_mark(fd, FAN_MARK_ADD, FAN_OPEN, AT_FDCWD, "dir");
>>
>> This was since the needed flag FAN_MARK_ONDIR was only honored when setting a
>> marks mask, but not when removing it. Now FAN_ONDIR is only set when explicitly
>> passed in the masks parameter. It now is also possible to remove it again:
>>
>> fanotify_mark(fd, FAN_MARK_ADD, FAN_OPEN | FAN_ONDIR , AT_FDCWD, "dir");
>> fanotify_mark(fd, FAN_MARK_REMOVE, FAN_ONDIR , AT_FDCWD, "dir");
>>
>> 2. Subsequent calls to fanotify_mark for a mark that had FAN_ONDIR already set
>> in its mask removed the flag, if it was not specified in the mask parameter
>> again. Thus
>>
>> fanotify_mark(fd, FAN_MARK_ADD, FAN_OPEN | FAN_ONDIR , AT_FDCWD, "dir");
>> fanotify_mark(fd, FAN_MARK_ADD, FAN_CLOSE, AT_FDCWD, "dir");
>>
>> set FAN_ONDIR in the first call on the marks mask but also on the ignored
>> mask in the second call. So the first request for DIR events was overwritten.
>> Since the flag is now not set implicitly any longer this cant happen any more.
> Ugh, I have to say I don't understand the changelog. From the code I
> think I understood that instead of always adding FAN_ONDIR to ignore mask
> you require FAN_ONDIR to be set in the normal mask. That makes sense to me
> but please make the changelog more comprehensible.
Hm. My intention was to describe at least two cases of strange behaviour
when setting the FAN_ONDIR flag. But maybe the description has indeed
become a little bit too complicated. I will adjust that and resend the
patch.
Also please add a
> testcase to LTP fanotify() coverage for FAN_ONDIR behavior so that we can
> easily see how userspace visible behavior changed / didn't change. Thanks!
>
Ok, i can do that (it may take a few days until i find the time for it
though). Thank you for review!
Regards,
Lino
next prev parent reply other threads:[~2014-12-02 2:03 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-11-29 23:37 [PATCH 1/3] fanotify: only destroy mark when both mask and ignored_mask are cleared Lino Sanfilippo
2014-11-29 23:37 ` [PATCH 2/3] fanotify: dont recalculate a marks mask if only the ignored mask changed Lino Sanfilippo
2014-12-01 9:11 ` Jan Kara
2014-11-29 23:37 ` [PATCH 3/3] fanotify: fix inconsistent behaviour regarding flag FAN_ONDIR Lino Sanfilippo
2014-12-01 10:05 ` Jan Kara
2014-12-02 2:03 ` Lino Sanfilippo [this message]
2014-12-01 9:04 ` [PATCH 1/3] fanotify: only destroy mark when both mask and ignored_mask are cleared Jan Kara
2014-12-02 2:11 ` Lino Sanfilippo
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=547D1E01.90900@gmx.de \
--to=linosanfilippo@gmx.de \
--cc=eparis@redhat.com \
--cc=jack@suse.cz \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.