Re: [PATCH 21/24] init: add an init_symlink helper
From: Al Viro <viro@zeniv.linux.org.uk>
Date: 2020-07-21 17:03:33
Also in:
linux-fsdevel, linux-raid, lkml
From: Al Viro <viro@zeniv.linux.org.uk>
Date: 2020-07-21 17:03:33
Also in:
linux-fsdevel, linux-raid, lkml
On Tue, Jul 21, 2020 at 06:28:15PM +0200, Christoph Hellwig wrote:
Add a simple helper to symlink with a kernel space file name and switch the early init code over to it. Remove the now unused ksys_symlink.
+int __init init_symlink(const char *oldname, const char *newname)
+{
+ struct filename *from = getname_kernel(oldname);What the hell for? You are only using from ->name later.
+ struct dentry *dentry; + struct path path; + int error; + + if (IS_ERR(from)) + return PTR_ERR(from); + dentry = kern_path_create(AT_FDCWD, newname, &path, 0); + error = PTR_ERR(dentry); + if (IS_ERR(dentry)) + goto out_putname; + error = security_path_symlink(&path, dentry, from->name); + if (!error) + error = vfs_symlink(path.dentry->d_inode, dentry, from->name); + done_path_create(&path, dentry); +out_putname: + putname(from); + return error; +}
And again, the same comment regarding the location of file.