From: Al Viro <viro@zeniv.linux.org.uk>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: linux-fsdevel@vger.kernel.org,
Christian Brauner <brauner@kernel.org>, Jan Kara <jack@suse.cz>,
Ian Kent <raven@themaw.net>, Miklos Szeredi <miklos@szeredi.hu>,
Andreas Hindborg <a.hindborg@kernel.org>,
linux-mm@kvack.org, linux-efi@vger.kernel.org,
ocfs2-devel@lists.linux.dev, Kees Cook <kees@kernel.org>,
Steven Rostedt <rostedt@goodmis.org>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
linux-usb@vger.kernel.org, Paul Moore <paul@paul-moore.com>,
Casey Schaufler <casey@schaufler-ca.com>,
linuxppc-dev@lists.ozlabs.org,
Christian Borntraeger <borntraeger@linux.ibm.com>
Subject: Re: [PATCHES][RFC] the meat of tree-in-dcache series
Date: Sat, 20 Sep 2025 19:09:18 +0100 [thread overview]
Message-ID: <20250920180918.GL39973@ZenIV> (raw)
In-Reply-To: <CAHk-=wiXPnY9vWFC87sHudSDYY+wpfTrs-uxd7DBypeE+15Y0g@mail.gmail.com>
On Sat, Sep 20, 2025 at 09:26:27AM -0700, Linus Torvalds wrote:
> Anyway, apart from that I only had one reaction: I think
> d_make_discardable() should have a
>
> WARN_ON(!(dentry->d_flags & DCACHE_PERSISTENT))
>
> because without that I think it can mistakenly be used as some kind of
> "dput that always takes the dentry lock", which seems bad.
>
> Or was that intentional for some reason?
In the end - sure, we want that. But in the meanwhile that would require
separate variants of simple_unlink()/simple_recursive_removal()/etc.
for those filesystems that are already marking persistent ones, with
the only difference being that warning.
A lot more noise that way.
So I'd prefer to put a warning in the source for the time being. In principle,
by the end of series as posted we are down to very few filesystems that use
simple_unlink() and friends without having marked them persistent in the
first place, so it would be possible to put a "make d_make_discardable() warn
if it's not marked persistent, add variants of simple_unlink()/simple_rmdir()/
simple_recursive_removal()/locked_recursive_removal() that would *NOT* warn
and switch the handful of unconverted users to calling those", but...
By the end of series as posted that's down to nfsctl, rpc_pipe, securityfs,
configfs and apparmorfs. The first 3 - because they used to have subseries
of their own in separate branches, with corresponding conversion commits
sitting on top of merges (#work.nfsctl is the last of those branches).
No real obstacle to moving them into the queue, I just wanted to post it
for review before we get to -rc7.
The remaining two (configfs and apparmor) are special enough to warrant private
copies of simple_{unlink,rmdir}(). So I'd rather have that in patch adding
the warning - simple_recursive_remove() wouldn't need a separate copy that
way at all.
configfs has a separate series untangling it, but that's a separate story -
that work goes back to 2018; I want to resurrect it, but I'm not mixing it
into this pile.
appramor is... special. They've got locking of their own, completely broken and
interspersed with regular directory locks. John Johansen, if I understood him
correctly, has some plans re fixing that, and I'm happy not to have analysis
of their locking on my plate. _Maybe_ it will end up close enough to the usual
tree-in-dcache to switch to that stuff, but at the moment I'd rather open-code
simple_{unlink,rmdir} in aafs_remove() and leave it at that.
prev parent reply other threads:[~2025-09-20 18:09 UTC|newest]
Thread overview: 50+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-09-20 7:41 [PATCHES][RFC] the meat of tree-in-dcache series Al Viro
2025-09-20 7:47 ` [PATCH 01/39] new helper: simple_remove_by_name() Al Viro
2025-09-20 7:47 ` [PATCH 02/39] new helper: simple_done_creating() Al Viro
2025-09-20 7:47 ` [PATCH 03/39] introduce a flag for explicitly marking persistently pinned dentries Al Viro
2025-09-20 7:47 ` [PATCH 04/39] primitives for maintaining persisitency Al Viro
2025-09-20 7:47 ` [PATCH 05/39] convert simple_{link,unlink,rmdir,rename,fill_super}() to new primitives Al Viro
2025-09-20 7:47 ` [PATCH 06/39] convert ramfs and tmpfs Al Viro
2025-09-20 7:47 ` [PATCH 07/39] procfs: make /self and /thread_self dentries persistent Al Viro
2025-09-20 7:47 ` [PATCH 08/39] configfs, securityfs: kill_litter_super() not needed Al Viro
2025-09-24 16:56 ` Joel Becker
2025-09-20 7:47 ` [PATCH 09/39] convert xenfs Al Viro
2025-09-20 7:47 ` [PATCH 10/39] convert smackfs Al Viro
2025-09-22 15:11 ` Casey Schaufler
2025-09-20 7:47 ` [PATCH 11/39] convert hugetlbfs Al Viro
2025-09-20 7:47 ` [PATCH 12/39] convert mqueue Al Viro
2025-09-20 7:47 ` [PATCH 13/39] convert bpf Al Viro
2025-09-20 7:47 ` [PATCH 14/39] convert dlmfs Al Viro
2025-09-20 7:47 ` [PATCH 15/39] convert fuse_ctl Al Viro
2025-09-20 7:47 ` [PATCH 16/39] convert pstore Al Viro
2025-09-20 7:47 ` [PATCH 17/39] convert tracefs Al Viro
2025-09-20 7:47 ` [PATCH 18/39] convert debugfs Al Viro
2025-09-23 8:10 ` Greg KH
2025-09-20 7:47 ` [PATCH 19/39] debugfs: remove duplicate checks in callers of start_creating() Al Viro
2025-09-23 8:10 ` Greg KH
2025-09-20 7:47 ` [PATCH 20/39] convert efivarfs Al Viro
2025-09-20 7:47 ` [PATCH 21/39] convert spufs Al Viro
2025-09-20 7:47 ` [PATCH 22/39] convert ibmasmfs Al Viro
2025-09-20 7:47 ` [PATCH 23/39] ibmasmfs: get rid of ibmasmfs_dir_ops Al Viro
2025-09-20 7:47 ` [PATCH 24/39] convert devpts Al Viro
2025-09-20 7:47 ` [PATCH 25/39] binderfs: use simple_start_creating() Al Viro
2025-09-20 7:47 ` [PATCH 26/39] binderfs_binder_ctl_create(): kill a bogus check Al Viro
2025-09-20 7:47 ` [PATCH 27/39] convert binderfs Al Viro
2025-09-20 7:47 ` [PATCH 28/39] autofs_{rmdir,unlink}: dentry->d_fsdata->dentry == dentry there Al Viro
2025-09-20 7:47 ` [PATCH 29/39] convert autofs Al Viro
2025-09-20 7:47 ` [PATCH 30/39] convert binfmt_misc Al Viro
2025-09-20 7:47 ` [PATCH 31/39] convert selinuxfs Al Viro
2025-09-21 20:44 ` Paul Moore
2025-09-21 22:26 ` Al Viro
2025-09-22 2:50 ` Paul Moore
2025-09-22 3:52 ` Al Viro
2025-09-20 7:47 ` [PATCH 32/39] functionfs: switch to simple_remove_by_name() Al Viro
2025-09-20 7:47 ` [PATCH 33/39] convert functionfs Al Viro
2025-09-20 7:47 ` [PATCH 34/39] gadgetfs: switch to simple_remove_by_name() Al Viro
2025-09-20 7:47 ` [PATCH 35/39] convert gadgetfs Al Viro
2025-09-20 7:47 ` [PATCH 36/39] hypfs: don't pin dentries twice Al Viro
2025-09-20 7:47 ` [PATCH 37/39] hypfs: switch hypfs_create_str() to returning int Al Viro
2025-09-20 7:47 ` [PATCH 38/39] hypfs: swich hypfs_create_u64() " Al Viro
2025-09-20 7:47 ` [PATCH 39/39] convert hypfs Al Viro
2025-09-20 16:26 ` [PATCHES][RFC] the meat of tree-in-dcache series Linus Torvalds
2025-09-20 18:09 ` Al Viro [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=20250920180918.GL39973@ZenIV \
--to=viro@zeniv.linux.org.uk \
--cc=a.hindborg@kernel.org \
--cc=borntraeger@linux.ibm.com \
--cc=brauner@kernel.org \
--cc=casey@schaufler-ca.com \
--cc=gregkh@linuxfoundation.org \
--cc=jack@suse.cz \
--cc=kees@kernel.org \
--cc=linux-efi@vger.kernel.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linux-usb@vger.kernel.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=miklos@szeredi.hu \
--cc=ocfs2-devel@lists.linux.dev \
--cc=paul@paul-moore.com \
--cc=raven@themaw.net \
--cc=rostedt@goodmis.org \
--cc=torvalds@linux-foundation.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).