]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
fs: touch up predicts in putname()
authorMateusz Guzik <mjguzik@gmail.com>
Wed, 29 Oct 2025 13:49:52 +0000 (14:49 +0100)
committerChristian Brauner <brauner@kernel.org>
Fri, 31 Oct 2025 12:18:08 +0000 (13:18 +0100)
1. we already expect the refcount is 1.
2. path creation predicts name == iname

I verified this straightens out the asm, no functional changes.

Signed-off-by: Mateusz Guzik <mjguzik@gmail.com>
Link: https://patch.msgid.link/20251029134952.658450-1-mjguzik@gmail.com
Reviewed-by: Jan Kara <jack@suse.cz>
Signed-off-by: Christian Brauner <brauner@kernel.org>
fs/namei.c

index 7377020a2cba02501483020e0fc93c279fb38d3e..1d4d17f24fb2815a7062e3d5ce0bd7d11d879525 100644 (file)
@@ -282,7 +282,7 @@ void putname(struct filename *name)
                return;
 
        refcnt = atomic_read(&name->refcnt);
-       if (refcnt != 1) {
+       if (unlikely(refcnt != 1)) {
                if (WARN_ON_ONCE(!refcnt))
                        return;
 
@@ -290,7 +290,7 @@ void putname(struct filename *name)
                        return;
        }
 
-       if (name->name != name->iname) {
+       if (unlikely(name->name != name->iname)) {
                __putname(name->name);
                kfree(name);
        } else