From: Amir Goldstein <amir73il@gmail.com>
To: Jan Kara <jack@suse.cz>
Cc: Matthew Bobrowski <mbobrowski@mbobrowski.org>,
linux-fsdevel@vger.kernel.org
Subject: [PATCH v2 00/14] Sort out fsnotify_nameremove() mess
Date: Thu, 16 May 2019 13:26:27 +0300 [thread overview]
Message-ID: <20190516102641.6574-1-amir73il@gmail.com> (raw)
Jan,
What do you think will be the best merge strategy for this patch series?
How about sending first 3 prep patches to Linus for applying at the end
of v5.2 merge window, so individual maintainers can pick up per fs
patches for the v5.3 development cycle?
The following d_delete() call sites have been audited and will no longer
generate fsnotify event after this series:
drivers/usb/gadget/function/f_fs.c:ffs_epfiles_destroy() - cleanup? (*)
fs/ceph/dir.c:ceph_unlink() - from vfs_unlink()
fs/ceph/inode.c:ceph_fill_trace() - invalidate (**)
fs/configfs/dir.c:detach_groups() - cleanup (*)
fs/configfs/dir.c:configfs_attach_item() - cleanup (*)
fs/configfs/dir.c:configfs_attach_group() - cleanup (*)
fs/efivarfs/file.c:efivarfs_file_write() - invalidate (**)
fs/fuse/dir.c:fuse_reverse_inval_entry() - invalidate (**)
fs/nfs/dir.c:nfs_dentry_handle_enoent() - invalidate (**)
fs/nsfs.c:__ns_get_path() - invalidate (**)
fs/ocfs2/dlmglue.c:ocfs2_dentry_convert_worker() - invalidate? (**)
fs/reiserfs/xattr.c:xattr_{unlink,rmdir}() - hidden xattr inode
(*) There are 2 "cleanup" use cases:
- Create;init;delte if init failed
- Batch delete of files within dir before removing dir
Both those cases are not interesting for users that wish to observe
configuration changes on pseudo filesystems. Often, there is already
an fsnotify event generated on the directory removal which is what
users should find interesting, for example:
configfs_unregister_{group,subsystem}().
(**) The different "invalidate" use cases differ, but they all share
one thing in common - user is not guarantied to get an event with
current kernel. For example, when a file is deleted remotely on
nfs server, nfs client is not guarantied to get an fsnotify delete
event. On current kernel, nfs client could generate an fsnotify
delete event if the local entry happens to be in cache and client
finds out that entry is deleted on server during another user
operation. Incidentally, this group of use cases is where most of
the call sites are with "unstable" d_name, which is the reason for
this patch series to begin with.
Thanks,
Amir.
Changes since v1:
- Split up per filesystem patches
- New hook names fsnotify_{unlink,rmdir}()
- Simplify fsnotify code in separate final patch
Amir Goldstein (14):
ASoC: rename functions that pollute the simple_xxx namespace
fs: create simple_remove() helper
fsnotify: add empty fsnotify_{unlink,rmdir}() hooks
fs: convert hypfs to use simple_remove() helper
fs: convert qibfs/ipathfs to use simple_remove() helper
fs: convert debugfs to use simple_remove() helper
fs: convert tracefs to use simple_remove() helper
fs: convert rpc_pipefs to use simple_remove() helper
fs: convert apparmorfs to use simple_remove() helper
fsnotify: call fsnotify_rmdir() hook from btrfs
fsnotify: call fsnotify_rmdir() hook from configfs
fsnotify: call fsnotify_unlink() hook from devpts
fsnotify: move fsnotify_nameremove() hook out of d_delete()
fsnotify: get rid of fsnotify_nameremove()
arch/s390/hypfs/inode.c | 9 ++-----
drivers/infiniband/hw/qib/qib_fs.c | 3 +--
fs/afs/dir_silly.c | 5 ----
fs/btrfs/ioctl.c | 4 ++-
fs/configfs/dir.c | 3 +++
fs/dcache.c | 2 --
fs/debugfs/inode.c | 20 +++------------
fs/devpts/inode.c | 1 +
fs/libfs.c | 32 +++++++++++++++++++++++
fs/namei.c | 2 ++
fs/nfs/unlink.c | 6 -----
fs/notify/fsnotify.c | 41 ------------------------------
fs/tracefs/inode.c | 23 +++--------------
include/linux/fs.h | 1 +
include/linux/fsnotify.h | 26 +++++++++++++++++++
include/linux/fsnotify_backend.h | 4 ---
net/sunrpc/rpc_pipe.c | 16 ++----------
security/apparmor/apparmorfs.c | 6 +----
sound/soc/generic/simple-card.c | 8 +++---
19 files changed, 86 insertions(+), 126 deletions(-)
--
2.17.1
next reply other threads:[~2019-05-16 10:26 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-05-16 10:26 Amir Goldstein [this message]
2019-05-16 10:26 ` [PATCH v2 01/14] ASoC: rename functions that pollute the simple_xxx namespace Amir Goldstein
2019-05-17 1:04 ` Kuninori Morimoto
2019-05-21 20:32 ` Applied "ASoC: rename functions that pollute the simple_xxx namespace" to the asoc tree Mark Brown
2019-05-16 10:26 ` [PATCH v2 02/14] fs: create simple_remove() helper Amir Goldstein
2019-05-16 15:08 ` Fwd: " Amir Goldstein
2019-05-16 17:07 ` Al Viro
2019-05-16 18:42 ` Amir Goldstein
2019-05-16 10:26 ` [PATCH v2 03/14] fsnotify: add empty fsnotify_{unlink,rmdir}() hooks Amir Goldstein
2019-05-16 15:30 ` Fwd: " Amir Goldstein
2019-05-16 10:26 ` [PATCH v2 04/14] fs: convert hypfs to use simple_remove() helper Amir Goldstein
2019-05-16 10:26 ` [PATCH v2 05/14] fs: convert qibfs/ipathfs " Amir Goldstein
2019-05-16 10:26 ` [PATCH v2 06/14] fs: convert debugfs " Amir Goldstein
2019-05-16 10:35 ` Greg Kroah-Hartman
2019-05-16 10:44 ` Amir Goldstein
2019-05-16 12:02 ` Jan Kara
2019-05-16 12:09 ` Amir Goldstein
2019-05-16 15:28 ` Greg Kroah-Hartman
2019-05-16 15:38 ` Amir Goldstein
2019-05-16 16:52 ` Greg Kroah-Hartman
2019-05-16 18:47 ` Amir Goldstein
2019-05-16 10:26 ` [PATCH v2 07/14] fs: convert tracefs " Amir Goldstein
2019-05-17 17:33 ` Steven Rostedt
2019-05-16 10:26 ` [PATCH v2 08/14] fs: convert rpc_pipefs " Amir Goldstein
2019-05-16 10:26 ` [PATCH v2 09/14] fs: convert apparmorfs " Amir Goldstein
2019-05-16 10:26 ` [PATCH v2 10/14] fsnotify: call fsnotify_rmdir() hook from btrfs Amir Goldstein
2019-05-16 11:56 ` David Sterba
2019-05-16 10:26 ` [PATCH v2 11/14] fsnotify: call fsnotify_rmdir() hook from configfs Amir Goldstein
2019-05-16 12:33 ` Christoph Hellwig
2019-05-16 13:38 ` Amir Goldstein
2019-05-16 10:26 ` [PATCH v2 12/14] fsnotify: call fsnotify_unlink() hook from devpts Amir Goldstein
2019-05-16 10:26 ` [PATCH v2 13/14] fsnotify: move fsnotify_nameremove() hook out of d_delete() Amir Goldstein
2019-05-16 10:26 ` [PATCH v2 14/14] fsnotify: get rid of fsnotify_nameremove() Amir Goldstein
2019-05-16 10:40 ` [PATCH v2 00/14] Sort out fsnotify_nameremove() mess Amir Goldstein
2019-05-16 12:25 ` Jan Kara
2019-05-16 13:56 ` Amir Goldstein
2019-05-16 16:17 ` Al Viro
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=20190516102641.6574-1-amir73il@gmail.com \
--to=amir73il@gmail.com \
--cc=jack@suse.cz \
--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).