Linux-Fsdevel Archive mirror
 help / color / mirror / Atom feed
From: Jan Kara <jack@suse.cz>
To: Amir Goldstein <amir73il@gmail.com>
Cc: Jan Kara <jack@suse.cz>,
	Christian Brauner <christian.brauner@ubuntu.com>,
	linux-fsdevel <linux-fsdevel@vger.kernel.org>,
	Miklos Szeredi <miklos@szeredi.hu>,
	"J. Bruce Fields" <bfields@fieldses.org>
Subject: Re: fsnotify path hooks
Date: Fri, 9 Apr 2021 12:08:11 +0200	[thread overview]
Message-ID: <20210409100811.GA20833@quack2.suse.cz> (raw)
In-Reply-To: <CAOQ4uxhrvKkK3RZRoGTojpyiyVmQpLWknYiKs8iN=Uq+mhOvsg@mail.gmail.com>

On Thu 08-04-21 18:11:31, Amir Goldstein wrote:
> > > FYI, I tried your suggested approach above for fsnotify_xattr(),
> > > but I think I prefer to use an explicit flavor fsnotify_xattr_mnt()
> > > and a wrapper fsnotify_xattr().
> > > Pushed WIP to fsnotify_path_hooks branch. It also contains
> > > some unstashed "fix" patches to tidy up the previous hooks.
> >
> > What's in fsnotify_path_hooks branch looks good to me wrt xattr hooks.
> > I somewhat dislike about e.g. the fsnotify_create() approach you took is
> > that there are separate hooks fsnotify_create() and fsnotify_create_path()
> > which expose what is IMO an internal fsnotify detail of what are different
> > event types. I'd say it is more natural (from VFS POV) to have just a
> > single hook and fill in as much information as available... Also from
> 
> So to be clear, you do NOT want additional wrappers like this and
> you prefer to have the NULL mnt argument explicit in all callers?
> 
> static inline void fsnotify_xattr(struct dentry *dentry)
> {
>         fsnotify_xattr_mnt(NULL, dentry);
> }
> 
> For fsnotify_xattr() it does not matter so much, but fsnotify_create/mkdir()
> have quite a few callers in special filesystems.

Yes, I prefer explicit NULL mnt argument to make it obvious we are going to
miss something in this case. I agree it's going to be somewhat bigger churn
but it isn't that bad (10 + 6 callers).

> > outside view, it is unclear that e.g. vfs_create() will generate some types
> > of fsnotify events but not all while e.g. do_mknodat() will generate all
> > fsnotify events. That's why I'm not sure whether a helper like vfs_create()
> > in your tree is the right abstraction since generating one type of fsnotify
> > event while not generating another type should be a very conscious decision
> > of the implementor - basically if you have no other option.
> 
> I lost you here.

Sorry, I was probably too philosophical here ;)

> Are you ok with vfs_create() vs. vfs_create_nonotify()?

I'm OK with vfs_create_nonotify(). I have a problem with vfs_create()
because it generates inode + fs events but does not generate mount events
which is just strange (although I appreciate the technical reason behind
it :).

> How do you propose to change fsnotify hooks in vfs_create()?

So either pass 'mnt' to vfs_create() - as we discussed, this may be
actually acceptable these days due to idmapped mounts work - and generate
all events there, or make vfs_create() not generate any fsnotify events and
create new vfs_create_notify() which will take the 'mnt' and generate
events. Either is fine with me and more consistent than what you currently
propose. Thoughts?

								Honza
-- 
Jan Kara <jack@suse.com>
SUSE Labs, CR

  reply	other threads:[~2021-04-09 10:09 UTC|newest]

Thread overview: 61+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-03-28 15:56 [RFC][PATCH] fanotify: allow setting FAN_CREATE in mount mark mask Amir Goldstein
2021-03-30  7:31 ` Christian Brauner
2021-03-30  9:31   ` Amir Goldstein
2021-03-30 16:24     ` Amir Goldstein
2021-03-31 10:08       ` Christian Brauner
2021-03-31 10:57         ` Amir Goldstein
2021-04-08 11:44         ` open_by_handle_at() in userns Amir Goldstein
2021-04-08 12:55           ` Christian Brauner
2021-04-08 14:15             ` J. Bruce Fields
2021-04-08 15:54               ` Amir Goldstein
2021-04-08 16:08                 ` J. Bruce Fields
2021-04-08 16:48                   ` Frank Filz
2021-04-08 15:34             ` Amir Goldstein
2021-04-08 15:41               ` Christian Brauner
2021-03-30 12:12 ` [RFC][PATCH] fanotify: allow setting FAN_CREATE in mount mark mask Christian Brauner
2021-03-30 12:33   ` Amir Goldstein
2021-03-30 12:53     ` Christian Brauner
2021-03-30 12:55       ` Christian Brauner
2021-03-30 13:54       ` Amir Goldstein
2021-03-30 14:17         ` Christian Brauner
2021-03-30 14:56           ` Amir Goldstein
2021-03-31  9:46             ` Christian Brauner
2021-03-31 11:29               ` Amir Goldstein
2021-03-31 12:17                 ` Christian Brauner
2021-03-31 12:59                   ` Amir Goldstein
2021-03-31 12:54                 ` Jan Kara
2021-03-31 14:06                   ` Amir Goldstein
2021-03-31 20:59                     ` fsnotify path hooks Amir Goldstein
2021-04-01 10:29                       ` Jan Kara
2021-04-01 14:18                         ` Amir Goldstein
2021-04-02  8:20                           ` Amir Goldstein
2021-04-04 10:27                             ` LSM and setxattr helpers Amir Goldstein
2021-04-05 12:23                               ` Christian Brauner
2021-04-05 14:47                               ` Mimi Zohar
2021-04-06 15:43                                 ` Amir Goldstein
2021-04-05 16:18                               ` Casey Schaufler
2021-04-06  8:35                           ` fsnotify path hooks Jan Kara
2021-04-06 18:49                           ` Amir Goldstein
2021-04-08 12:52                             ` Jan Kara
2021-04-08 15:11                               ` Amir Goldstein
2021-04-09 10:08                                 ` Jan Kara [this message]
2021-04-09 10:45                                   ` Christian Brauner
2021-04-20  6:01                                     ` Amir Goldstein
2021-04-20 11:41                                       ` Christian Brauner
2021-04-20 11:58                                         ` Amir Goldstein
2021-04-20 13:38                                         ` Christian Brauner
2021-04-09 13:22                                   ` Amir Goldstein
2021-04-09 14:30                                     ` Al Viro
2021-04-09 14:39                                       ` Christian Brauner
2021-04-09 14:46                                         ` Al Viro
2021-04-09 15:20                                           ` Christian Brauner
2021-04-09 16:06                                       ` Amir Goldstein
2021-04-09 16:09                                         ` Amir Goldstein
2021-04-18 18:51                                   ` Amir Goldstein
2021-04-19  8:08                                     ` Amir Goldstein
2021-04-19 16:41                                 ` Amir Goldstein
2021-04-19 17:02                                   ` Al Viro
2021-04-19 22:04                                     ` Amir Goldstein
2021-04-20  7:53                                       ` Amir Goldstein
2021-03-31 13:06                 ` [RFC][PATCH] fanotify: allow setting FAN_CREATE in mount mark mask J. Bruce Fields
2021-03-30 12:20 ` 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=20210409100811.GA20833@quack2.suse.cz \
    --to=jack@suse.cz \
    --cc=amir73il@gmail.com \
    --cc=bfields@fieldses.org \
    --cc=christian.brauner@ubuntu.com \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=miklos@szeredi.hu \
    /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 read-only IMAP folder(s) and NNTP newsgroup(s).