From nobody Mon Feb 9 10:48:00 2026 Received: from zeniv.linux.org.uk (zeniv.linux.org.uk [62.89.141.173]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6B82D318EE3; Wed, 14 Jan 2026 04:31:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=62.89.141.173 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768365119; cv=none; b=LVWKtVQ8qpwDGWd5ee+kGrr62s75Lm/SrRKFKyhH3QeX1/OT28Ya4yBxWzgLVfasSeFJJLUEzz+J1kkfjnQiwJDJPj24xuYGry3dr6Z3fw3YedtndcJ7Xc+AtK0HKovDm55PyvML4nHua625YbtYbOPMRLANa+D5dHKq+CtWr6Y= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768365119; c=relaxed/simple; bh=ljJhsM2UM5HEh3KIUjpWPjWzR98+V6slammE6w3oPzk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=QpHvqaYjMKj35XS9UgCE49KmOKTUVVCitMFNJsV6jqiAg/SR4uh1vKcIVATqkSqkzl5Y1BS9TlrU3UEkV5VHp8L5SkOnCbscFwL5TmDFdbDwrBmQbT32CfPQTfKgoSsV3NCv/nBTcWlpw+Tn1aQIkh2GLOu4d3H+rUVX9aIWEgQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=zeniv.linux.org.uk; spf=none smtp.mailfrom=ftp.linux.org.uk; dkim=pass (2048-bit key) header.d=linux.org.uk header.i=@linux.org.uk header.b=HGTog5Y8; arc=none smtp.client-ip=62.89.141.173 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=zeniv.linux.org.uk Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=ftp.linux.org.uk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linux.org.uk header.i=@linux.org.uk header.b="HGTog5Y8" DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=linux.org.uk; s=zeniv-20220401; h=Sender:Content-Transfer-Encoding: MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From: Reply-To:Content-Type:Content-ID:Content-Description; bh=u60OFkXUnAqsCaBd4FJv+u2v9etfYl45qHO74HpFUVs=; b=HGTog5Y8Lmgj/rKKNAyvdvcIuG 2Z96leJmRV9ue55kTKUWWbeGw/WqV40ehHQ4NfZG8+Xqz/nkcIuIVS1hvD5FFY+5NjaZrjBf82PCY LbyWr+5GIm30ZznDjJRXTyZxU5GIj0ftzCqvkkyIWMjdT+oy8pWitlVKyQCTRtS3utBFy0XmAZ5cg YOazENxsQQ32l2bIKisq0OVLEbgj787yi0nukFRVSp4aAaOuxJpJad+AxmNcN5Zcm3BGTISJ3tlmR 9o5YDn+34bQptxTHmsilOW/FHhsA+sYkW77lh0b1V8cEh++Y7ev4cNY7zBNlABkWjE6dW2gK9SQvN lkbRpfgg==; Received: from viro by zeniv.linux.org.uk with local (Exim 4.99 #2 (Red Hat Linux)) id 1vfsZM-0000000GIyW-32vR; Wed, 14 Jan 2026 04:33:20 +0000 From: Al Viro To: linux-fsdevel@vger.kernel.org Cc: Linus Torvalds , Christian Brauner , Jan Kara , Mateusz Guzik , Paul Moore , Jens Axboe , audit@vger.kernel.org, io-uring@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v5 57/68] namei.c: convert getname_kernel() callers to CLASS(filename_kernel) Date: Wed, 14 Jan 2026 04:32:59 +0000 Message-ID: <20260114043310.3885463-58-viro@zeniv.linux.org.uk> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20260114043310.3885463-1-viro@zeniv.linux.org.uk> References: <20260114043310.3885463-1-viro@zeniv.linux.org.uk> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Sender: Al Viro Content-Type: text/plain; charset="utf-8" Signed-off-by: Al Viro --- fs/namei.c | 36 ++++++++++-------------------------- 1 file changed, 10 insertions(+), 26 deletions(-) diff --git a/fs/namei.c b/fs/namei.c index ba6e15339ad6..1158beb9a399 100644 --- a/fs/namei.c +++ b/fs/namei.c @@ -3002,7 +3002,7 @@ static struct dentry *__start_removing_path(int dfd, = struct filename *name, struct dentry *kern_path_parent(const char *name, struct path *path) { struct path parent_path __free(path_put) =3D {}; - struct filename *filename __free(putname) =3D getname_kernel(name); + CLASS(filename_kernel, filename)(name); struct dentry *d; struct qstr last; int type, error; @@ -3023,11 +3023,8 @@ struct dentry *kern_path_parent(const char *name, st= ruct path *path) =20 struct dentry *start_removing_path(const char *name, struct path *path) { - struct filename *filename =3D getname_kernel(name); - struct dentry *res =3D __start_removing_path(AT_FDCWD, filename, path); - - putname(filename); - return res; + CLASS(filename_kernel, filename)(name); + return __start_removing_path(AT_FDCWD, filename, path); } =20 struct dentry *start_removing_user_path_at(int dfd, @@ -3044,12 +3041,8 @@ EXPORT_SYMBOL(start_removing_user_path_at); =20 int kern_path(const char *name, unsigned int flags, struct path *path) { - struct filename *filename =3D getname_kernel(name); - int ret =3D filename_lookup(AT_FDCWD, filename, flags, path, NULL); - - putname(filename); - return ret; - + CLASS(filename_kernel, filename)(name); + return filename_lookup(AT_FDCWD, filename, flags, path, NULL); } EXPORT_SYMBOL(kern_path); =20 @@ -3083,15 +3076,11 @@ int vfs_path_lookup(struct dentry *dentry, struct v= fsmount *mnt, const char *name, unsigned int flags, struct path *path) { - struct filename *filename; + CLASS(filename_kernel, filename)(name); struct path root =3D {.mnt =3D mnt, .dentry =3D dentry}; - int ret; =20 - filename =3D getname_kernel(name); /* the first argument of filename_lookup() is ignored with root */ - ret =3D filename_lookup(AT_FDCWD, filename, flags, path, &root); - putname(filename); - return ret; + return filename_lookup(AT_FDCWD, filename, flags, path, &root); } EXPORT_SYMBOL(vfs_path_lookup); =20 @@ -4888,13 +4877,12 @@ struct file *do_file_open_root(const struct path *r= oot, { struct nameidata nd; struct file *file; - struct filename *filename; int flags =3D op->lookup_flags; =20 if (d_is_symlink(root->dentry) && op->intent & LOOKUP_OPEN) return ERR_PTR(-ELOOP); =20 - filename =3D getname_kernel(name); + CLASS(filename_kernel, filename)(name); if (IS_ERR(filename)) return ERR_CAST(filename); =20 @@ -4905,7 +4893,6 @@ struct file *do_file_open_root(const struct path *roo= t, if (unlikely(file =3D=3D ERR_PTR(-ESTALE))) file =3D path_openat(&nd, op, flags | LOOKUP_REVAL); restore_nameidata(); - putname(filename); return file; } =20 @@ -4961,11 +4948,8 @@ static struct dentry *filename_create(int dfd, struc= t filename *name, struct dentry *start_creating_path(int dfd, const char *pathname, struct path *path, unsigned int lookup_flags) { - struct filename *filename =3D getname_kernel(pathname); - struct dentry *res =3D filename_create(dfd, filename, path, lookup_flags); - - putname(filename); - return res; + CLASS(filename_kernel, filename)(pathname); + return filename_create(dfd, filename, path, lookup_flags); } EXPORT_SYMBOL(start_creating_path); =20 --=20 2.47.3