From: sashiko-bot@kernel.org
To: "Christian Brauner" <brauner@kernel.org>
Cc: linux-ext4@vger.kernel.org, tytso@mit.edu
Subject: Re: [PATCH 1/2] dcache: don't leave negative dentries in casefolded directories
Date: Fri, 23 Oct 2026 13:00:26 +0000 [thread overview]
Message-ID: <sashiko-outbox-182809@kernel.org> (raw)
In-Reply-To: <20261023-work-dcache-casefold-v1-1-1b0bd5c73a69@kernel.org>
> ext4, f2fs and tmpfs keep negative dentries out of casefolded
> directories. A negative dentry remembers one spelling of the name and
> the next create() through it would write that spelling to disk.
>
> So their ->lookup() doesn't cache a miss and their ->unlink() and
> ->rmdir() call d_invalidate() on the dentry so that d_delete() doesn't
> turn it into a negative dentry.
>
> But d_invalidate() is the wrong primitive for that. It's for a name that
> went stale. It walks the subtree, prunes it and detaches every mount it
> finds, under namespace_sem, and here that runs from inside the
> filesystem's own directory operation. ext4_rmdir() does it with the
> journal handle still open and ext4_unlink() does it even when the
> unlink failed. All anyone wanted is the unhash.
>
> So d_delete() now unhashes the dentry when the parent is casefolded,
> next to the dentry-negative sysctl that does the same for every
> directory. ext4, f2fs and tmpfs drop their d_invalidate() calls.
>
> Nothing changes for a casefolded directory. A miss still isn't cached
> and a removed name still doesn't leave a negative dentry behind. The
> target of a rename over an existing name, which tmpfs also passes
> through shmem_unlink(), doesn't turn negative either. vfs_rename()
> detaches its mounts and d_move() unhashes it. A failed unlink or rmdir
> now leaves the dentry hashed and its mounts in place, as in any other
> directory.
>
> Signed-off-by: Christian Brauner (Amutable) <brauner@kernel.org>
Sashiko has reviewed this patch and found no issues.
--
Sashiko AI review · https://sashiko.dev/#/patchset/20261023-work-dcache-casefold-v1-0-1b0bd5c73a69@kernel.org?part=1
next prev parent reply other threads:[~2026-10-23 13:00 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-23 12:44 [PATCH 0/2] dcache: don't leave negative dentries in casefolded directories Christian Brauner
2026-10-23 12:44 ` [f2fs-dev] " Christian Brauner via Linux-f2fs-devel
2026-10-23 12:44 ` [PATCH 1/2] " Christian Brauner
2026-10-23 12:44 ` [f2fs-dev] " Christian Brauner via Linux-f2fs-devel
2026-10-23 13:00 ` sashiko-bot [this message]
2026-10-24 19:20 ` Eric Biggers
2026-10-24 19:20 ` [f2fs-dev] " Eric Biggers via Linux-f2fs-devel
2026-10-26 8:12 ` Christian Brauner
2026-10-26 8:12 ` [f2fs-dev] " Christian Brauner via Linux-f2fs-devel
2026-10-26 12:19 ` Jan Kara
2026-10-26 12:19 ` [f2fs-dev] " Jan Kara
2026-10-23 12:44 ` [PATCH 2/2] xfs: unhash a removed name in ascii-ci mode instead of invalidating it Christian Brauner
2026-10-23 12:44 ` [f2fs-dev] " Christian Brauner via Linux-f2fs-devel
2026-10-23 12:49 ` sashiko-bot
2026-10-26 15:36 ` [PATCH 0/2] dcache: don't leave negative dentries in casefolded directories Gabriel Krisman Bertazi
2026-10-26 15:36 ` [f2fs-dev] " Gabriel Krisman Bertazi
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=sashiko-outbox-182809@kernel.org \
--to=sashiko-bot@kernel.org \
--cc=brauner@kernel.org \
--cc=linux-ext4@vger.kernel.org \
--cc=sashiko-reviews@lists.linux.dev \
--cc=tytso@mit.edu \
/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.