Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7c950992 authored by Richard Weinberger's avatar Richard Weinberger
Browse files

hostfs: Use __getname() in follow_link



Be consistent with all other functions in hostfs and just
use __getname().

Signed-off-by: default avatarRichard Weinberger <richard@nod.at>
parent c278e81b
Loading
Loading
Loading
Loading
+11 −14
Original line number Diff line number Diff line
@@ -142,21 +142,19 @@ static char *follow_link(char *link)
	int len, n;
	char *name, *resolved, *end;

	len = 64;
	while (1) {
	name = __getname();
	if (!name) {
		n = -ENOMEM;
		name = kmalloc(len, GFP_KERNEL);
		if (name == NULL)
			goto out;

		n = hostfs_do_readlink(link, name, len);
		if (n < len)
			break;
		len *= 2;
		kfree(name);
		goto out_free;
	}

	n = hostfs_do_readlink(link, name, PATH_MAX);
	if (n < 0)
		goto out_free;
	else if (n == PATH_MAX) {
		n = -E2BIG;
		goto out_free;
	}

	if (*name == '/')
		return name;
@@ -175,13 +173,12 @@ static char *follow_link(char *link)
	}

	sprintf(resolved, "%s%s", link, name);
	kfree(name);
	__putname(name);
	kfree(link);
	return resolved;

 out_free:
	kfree(name);
 out:
	__putname(name);
	return ERR_PTR(n);
}