Thread (37 messages) 37 messages, 3 authors, 2020-07-22

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

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.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help