From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-ej1-f52.google.com (mail-ej1-f52.google.com [209.85.218.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6357C2206AC for ; Sat, 29 Nov 2025 15:55:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.52 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764431713; cv=none; b=sKd3W1XFzcTGd+YGYqZ/vKzNuCtAMzzsOuC+MMRwQDcbzA4fqSoOUviOXEeTqio6SN+cPIb03rYsnVFZMxHnlksPBWDLnwEasqjDYB9jHPjV94yLuavBhQJpGxfFbKpYrW9EuGoU4/wSsDwnydvzb1KLVpRKCqvGwHAIaqE+p30= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764431713; c=relaxed/simple; bh=gegZGqXA1lQbjgAIgRfxxClC9l/ycrOqbI88gF9ufyM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=D701XZpMKn1hbW5aDTSgyrhdV2FiJgi0hFcB1QBXKoGvlmBopDxolUCd3yDLA41Zt9NSSfRAbmpRLtvS6tPXXXSCeaPZSA2smQAICKqjtExJ24MFoxYW5EhdLXv38R8QZgpTnPfcxJ3Zr7uTJ5n5rCh6BVvy1S7h55Ei0r9NAoE= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=F9KG+5dL; arc=none smtp.client-ip=209.85.218.52 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="F9KG+5dL" Received: by mail-ej1-f52.google.com with SMTP id a640c23a62f3a-b72b495aa81so369032766b.2 for ; Sat, 29 Nov 2025 07:55:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1764431710; x=1765036510; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=jhCNIy0D0SRdxJhzjFTGAJqVSQJS+0jdQCu4h9SuzuY=; b=F9KG+5dLlZWZZ7mr6u6TIzYB7xmHuljKkGGQ6+DAyUh6+Asa7OnmfMJu3Buy/8rmDb 3hgejF7QMuSt8V6eTpj3Y5TshLAjLXqnH8IQLSRgn1YqkksKYUcfAmtVkcB1VH70sCt5 MJNMPVExPzAe/sWwqvxaOLJZEhPtInrZTiWVMn1pc2n/1GGmgsxor+sn7QwYHOXRJM8i A2BFAz9NZDeQ8qaBR4Z4y/tZL6h5rrweuDkT6oOKym8O43IVekEKZdLGxphej7PYi1hE 3cfnOgJi7xxeegPV75ibjnLd2mnye8slrPPlSpF4Tbcz8XNpHZbR53dEoYaOxEP3UrFp /Rfg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1764431710; x=1765036510; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=jhCNIy0D0SRdxJhzjFTGAJqVSQJS+0jdQCu4h9SuzuY=; b=EhZ2n8/OefNaSuzL/irLuYP+My+ucLX4gy1xv3dqg7a8lBpmcshqB8giXDJxh5pJ71 npxlYoZI40ZWDfnx1hAS0zq2ZT7OFFwkpKQI8TXd3FFozGLKN6A1hm7rAbNEBgToRZTc EXVyk2Giirsvdmaa8kvmMiPTDK97E0WdON3FAVbm36bYR2B39VnVe9304h2xx7NFQb97 vhq70GLIOs9HBuE2pEr+sQ1/sgdD86CkXAUJ1AbgslAZqUdZqbiqRiTCt3cMKC4zwFeT BGQSEFeFxEFAkvZe9EjL2j9jA93J6DP0J/o+Lyi9EIDKPZp1kgPZxLlm/t6YPB2yEHkh WquA== X-Forwarded-Encrypted: i=1; AJvYcCU5n0KUKhTvNb/qZjVZOxI/FE//xUt2fRw7iItycmAELjtARdw4rMgpIAJYgt7JOyBsu9NiltjSDV5FLjI=@vger.kernel.org X-Gm-Message-State: AOJu0YzPRreWxD75QTPJAo9V+g+XIuzIrKijXBQ3EaK4YOsolDuZQkFe FoOS+qOf5Z/CHxHken6f8CSBJLwDjbxTwQx1sxBZicMLMzTMcz/5s3H6iiIsCA== X-Gm-Gg: ASbGnctgZiYD61KTnfEYSyscp3/FfYIbVvvhYgn0lur5AJUTs7n+YnGvrmFl0E8x3qA AqwvDYiID9l/kS+wwxLh2ajUJP9Q71lr9GE8oTMZBUqs6sElB+rMMceGaC35z1fEonP3515nld3 jDZrFVanHyCVNFD4vzhjQ2D3/ltGo98lp+GveoAGSQ4XI3LAVXJ0lSOD61ZKmgbgLBszhTUHj3a Z9YHTFAgXhGbJrHdTKFgoAzfr6Bu2HFLW88J375sbjYZn5myCLyS6qF9zBQGpH9VJ6OHv714f0B OWZMywxgS8NTaBum2eOLxHOxjUwnLXKkQ4Uc3HhklwG3j6Ou6tGuvTJwCrF1EYXwLdEuekuvaz3 qntnHUtc4TBf5GyLIWUnqqADzp/6TVG80htNLG5dFR3FQBdyySIVetsXnr/QbzqMW5ghv9f7Hm2 bKrQjLI8JLuvXzkqo8GiHtdr2BJuxdbK4l6P2a9Z7fcB+oPS70cXpvK+oEnZH46aJEtqFiEw== X-Google-Smtp-Source: AGHT+IFhLylm23z4EC9kbKlPmCLt9IYn3gMNvxGhOHgGAs6cCQq5gpcDrVIiFz69fb4dKLmwIwZ+Ig== X-Received: by 2002:a17:907:3c90:b0:b76:beac:ed1 with SMTP id a640c23a62f3a-b76c558b02bmr2174301066b.54.1764431709280; Sat, 29 Nov 2025 07:55:09 -0800 (PST) Received: from f.. (cst-prg-14-82.cust.vodafone.cz. [46.135.14.82]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b76f5162c5csm746364766b.6.2025.11.29.07.55.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 29 Nov 2025 07:55:08 -0800 (PST) From: Mateusz Guzik To: brauner@kernel.org Cc: viro@zeniv.linux.org.uk, jack@suse.cz, linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, Mateusz Guzik Subject: [PATCH 2/2] fs: hide namei_cachep behind runtime const machinery Date: Sat, 29 Nov 2025 16:55:00 +0100 Message-ID: <20251129155500.43116-2-mjguzik@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251129155500.43116-1-mjguzik@gmail.com> References: <20251129155500.43116-1-mjguzik@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Signed-off-by: Mateusz Guzik --- fs/dcache.c | 7 ++++--- include/asm-generic/vmlinux.lds.h | 4 +++- include/linux/namei.h | 11 ++++++++++- 3 files changed, 17 insertions(+), 5 deletions(-) diff --git a/fs/dcache.c b/fs/dcache.c index 23d1752c29e6..5cdcb3d0ee3b 100644 --- a/fs/dcache.c +++ b/fs/dcache.c @@ -3282,8 +3282,8 @@ static void __init dcache_init(void) } /* SLAB cache for __getname() consumers */ -struct kmem_cache *names_cachep __ro_after_init; -EXPORT_SYMBOL(names_cachep); +struct kmem_cache *__names_cachep __ro_after_init; +EXPORT_SYMBOL(__names_cachep); void __init vfs_caches_init_early(void) { @@ -3298,8 +3298,9 @@ void __init vfs_caches_init_early(void) void __init vfs_caches_init(void) { - names_cachep = kmem_cache_create_usercopy("names_cache", PATH_MAX, 0, + __names_cachep = kmem_cache_create_usercopy("names_cache", PATH_MAX, 0, SLAB_HWCACHE_ALIGN|SLAB_PANIC, 0, PATH_MAX, NULL); + runtime_const_init(ptr, __names_cachep); dcache_init(); inode_init(); diff --git a/include/asm-generic/vmlinux.lds.h b/include/asm-generic/vmlinux.lds.h index 8ca130af301f..890250fffbe0 100644 --- a/include/asm-generic/vmlinux.lds.h +++ b/include/asm-generic/vmlinux.lds.h @@ -972,7 +972,9 @@ #define RUNTIME_CONST_VARIABLES \ RUNTIME_CONST(shift, d_hash_shift) \ RUNTIME_CONST(ptr, dentry_hashtable) \ - RUNTIME_CONST(ptr, __dentry_cache) + RUNTIME_CONST(ptr, __dentry_cache) \ + RUNTIME_CONST(ptr, __names_cachep) + /* Alignment must be consistent with (kunit_suite *) in include/kunit/test.h */ #define KUNIT_TABLE() \ diff --git a/include/linux/namei.h b/include/linux/namei.h index bd4a7b058f97..c167f3a852e2 100644 --- a/include/linux/namei.h +++ b/include/linux/namei.h @@ -9,6 +9,10 @@ #include #include +#ifndef MODULE +#include +#endif + enum { MAX_NESTED_LINKS = 8 }; #define MAXSYMLINKS 40 @@ -88,7 +92,12 @@ static inline struct filename *refname(struct filename *name) return name; } -extern struct kmem_cache *names_cachep; +extern struct kmem_cache *__names_cachep; +#ifdef MODULE +#define names_cachep __names_cachep +#else +#define names_cachep runtime_const_ptr(__names_cachep) +#endif #define __getname() kmem_cache_alloc(names_cachep, GFP_KERNEL) #define __putname(name) kmem_cache_free(names_cachep, (void *)(name)) -- 2.48.1