From: Jan Kara <jack@suse.cz>
To: Amir Goldstein <amir73il@gmail.com>
Cc: Jan Kara <jack@suse.cz>,
Matthew Bobrowski <mbobrowski@mbobrowski.org>,
linux-fsdevel@vger.kernel.org
Subject: Re: [PATCH v3 02/13] fsnotify: send all event types to super block marks
Date: Wed, 28 Nov 2018 15:26:44 +0100 [thread overview]
Message-ID: <20181128142644.GF15604@quack2.suse.cz> (raw)
In-Reply-To: <20181125134352.21499-3-amir73il@gmail.com>
On Sun 25-11-18 15:43:41, Amir Goldstein wrote:
> So far, existence of super block marks was checked only on events with
> data type FSNOTIFY_EVENT_PATH. Use the super block of the "to_tell" inode
> to report the events of all event types to super block marks.
>
> This change has no effect on current backends. Soon, this will allow
> fanotify backend to receive all event types on a super block mark.
>
> Signed-off-by: Amir Goldstein <amir73il@gmail.com>
Looks good.
Honza
> ---
> fs/notify/fsnotify.c | 15 +++++++--------
> 1 file changed, 7 insertions(+), 8 deletions(-)
>
> diff --git a/fs/notify/fsnotify.c b/fs/notify/fsnotify.c
> index ecf09b6243d9..df06f3da166c 100644
> --- a/fs/notify/fsnotify.c
> +++ b/fs/notify/fsnotify.c
> @@ -328,16 +328,15 @@ int fsnotify(struct inode *to_tell, __u32 mask, const void *data, int data_is,
> const unsigned char *file_name, u32 cookie)
> {
> struct fsnotify_iter_info iter_info = {};
> - struct super_block *sb = NULL;
> + struct super_block *sb = to_tell->i_sb;
> struct mount *mnt = NULL;
> - __u32 mnt_or_sb_mask = 0;
> + __u32 mnt_or_sb_mask = sb->s_fsnotify_mask;
> int ret = 0;
> __u32 test_mask = (mask & ALL_FSNOTIFY_EVENTS);
>
> if (data_is == FSNOTIFY_EVENT_PATH) {
> mnt = real_mount(((const struct path *)data)->mnt);
> - sb = mnt->mnt.mnt_sb;
> - mnt_or_sb_mask = mnt->mnt_fsnotify_mask | sb->s_fsnotify_mask;
> + mnt_or_sb_mask |= mnt->mnt_fsnotify_mask;
> }
> /* An event "on child" is not intended for a mount/sb mark */
> if (mask & FS_EVENT_ON_CHILD)
> @@ -350,8 +349,8 @@ int fsnotify(struct inode *to_tell, __u32 mask, const void *data, int data_is,
> * SRCU because we have no references to any objects and do not
> * need SRCU to keep them "alive".
> */
> - if (!to_tell->i_fsnotify_marks &&
> - (!mnt || (!mnt->mnt_fsnotify_marks && !sb->s_fsnotify_marks)))
> + if (!to_tell->i_fsnotify_marks && !sb->s_fsnotify_marks &&
> + (!mnt || !mnt->mnt_fsnotify_marks))
> return 0;
> /*
> * if this is a modify event we may need to clear the ignored masks
> @@ -366,11 +365,11 @@ int fsnotify(struct inode *to_tell, __u32 mask, const void *data, int data_is,
>
> iter_info.marks[FSNOTIFY_OBJ_TYPE_INODE] =
> fsnotify_first_mark(&to_tell->i_fsnotify_marks);
> + iter_info.marks[FSNOTIFY_OBJ_TYPE_SB] =
> + fsnotify_first_mark(&sb->s_fsnotify_marks);
> if (mnt) {
> iter_info.marks[FSNOTIFY_OBJ_TYPE_VFSMOUNT] =
> fsnotify_first_mark(&mnt->mnt_fsnotify_marks);
> - iter_info.marks[FSNOTIFY_OBJ_TYPE_SB] =
> - fsnotify_first_mark(&sb->s_fsnotify_marks);
> }
>
> /*
> --
> 2.17.1
>
--
Jan Kara <jack@suse.com>
SUSE Labs, CR
next prev parent reply other threads:[~2018-11-29 1:28 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-11-25 13:43 [PATCH v3 00/13] fanotify: add support for more event types Amir Goldstein
2018-11-25 13:43 ` [PATCH v3 01/13] fsnotify: annotate directory entry modification events Amir Goldstein
2018-11-28 12:59 ` Jan Kara
2018-11-28 14:39 ` Amir Goldstein
2018-11-28 14:43 ` Jan Kara
2018-11-28 15:01 ` Amir Goldstein
2018-11-25 13:43 ` [PATCH v3 02/13] fsnotify: send all event types to super block marks Amir Goldstein
2018-11-28 14:26 ` Jan Kara [this message]
2018-11-25 13:43 ` [PATCH v3 03/13] fanotify: rename struct fanotify_{,perm_}event_info Amir Goldstein
2018-11-28 14:29 ` Jan Kara
2018-11-25 13:43 ` [PATCH v3 04/13] fanotify: define the structures to report a unique file identifier Amir Goldstein
2018-11-28 15:27 ` Jan Kara
2018-11-28 16:24 ` Amir Goldstein
2018-11-28 17:43 ` Jan Kara
2018-11-28 18:34 ` Amir Goldstein
2018-11-29 7:51 ` Jan Kara
2018-11-29 8:16 ` Amir Goldstein
2018-11-29 10:16 ` Jan Kara
2018-11-29 11:10 ` Amir Goldstein
2018-11-30 15:32 ` Amir Goldstein
2018-12-01 16:43 ` Amir Goldstein
2018-11-25 13:43 ` [PATCH v3 05/13] fanotify: classify events that hold a " Amir Goldstein
2018-11-28 15:33 ` Jan Kara
2018-11-28 15:44 ` Jan Kara
2018-11-28 15:52 ` Amir Goldstein
2018-11-25 13:43 ` [PATCH v3 06/13] fanotify: encode file identifier for FAN_REPORT_FID Amir Goldstein
2018-11-25 13:43 ` [PATCH v3 07/13] fanotify: copy event fid info to user Amir Goldstein
2018-11-29 9:00 ` Jan Kara
[not found] ` <CAOQ4uxjcb=UqQiw0XcpDfetK28bM4tOYdvgxPwhkjgE2mxpt=g@mail.gmail.com>
2018-11-29 9:49 ` Jan Kara
2018-11-25 13:43 ` [PATCH v3 08/13] fanotify: enable FAN_REPORT_FID init flag Amir Goldstein
2018-11-29 9:46 ` Jan Kara
2018-11-29 10:52 ` Jan Kara
2018-11-29 11:03 ` Amir Goldstein
2018-11-29 13:08 ` Jan Kara
2018-11-25 13:43 ` [PATCH v3 09/13] fanotify: cache fsid in fsnotify_mark_connector Amir Goldstein
2018-11-29 10:48 ` Jan Kara
2018-11-29 11:42 ` Amir Goldstein
2018-11-29 13:11 ` Jan Kara
2018-11-25 13:43 ` [PATCH v3 10/13] fanotify: check FS_ISDIR flag instead of d_is_dir() Amir Goldstein
2018-11-25 13:43 ` [PATCH v3 11/13] fanotify: support events with data type FSNOTIFY_EVENT_INODE Amir Goldstein
2018-11-25 13:43 ` [PATCH v3 12/13] fanotify: add support for create/attrib/move/delete events Amir Goldstein
2018-11-25 13:43 ` [PATCH v3 13/13] fanotify: report FAN_ONDIR to listener with FAN_REPORT_FID Amir Goldstein
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=20181128142644.GF15604@quack2.suse.cz \
--to=jack@suse.cz \
--cc=amir73il@gmail.com \
--cc=linux-fsdevel@vger.kernel.org \
--cc=mbobrowski@mbobrowski.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 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).