diff --git a/fs/namei.c b/fs/namei.c
index 593cf3b..628b6eb 100644
--- a/fs/namei.c
+++ b/fs/namei.c
@@ -3403,6 +3403,8 @@
 	int error;
 	bool is_dir = (lookup_flags & LOOKUP_DIRECTORY);
 
+	if (IS_ERR(name))
+		return ERR_CAST(name);
 	/*
 	 * Note that only LOOKUP_REVAL and LOOKUP_DIRECTORY matter here. Any
 	 * other flags passed in are ignored!
@@ -3410,8 +3412,10 @@
 	lookup_flags &= LOOKUP_REVAL;
 
 	error = filename_parentat(dfd, name, lookup_flags, path, &last, &type);
-	if (error)
+	if (error) {
+		putname(name);
 		return ERR_PTR(error);
+	}
 
 	/*
 	 * Yucky last component or no last component at all?
@@ -3449,6 +3453,7 @@
 		error = err2;
 		goto fail;
 	}
+	putname(name);
 	return dentry;
 fail:
 	dput(dentry);
@@ -3459,20 +3464,15 @@
 		mnt_drop_write(path->mnt);
 out:
 	path_put(path);
+	putname(name);
 	return dentry;
 }
 
 struct dentry *kern_path_create(int dfd, const char *pathname,
 				struct path *path, unsigned int lookup_flags)
 {
-	struct filename *filename = getname_kernel(pathname);
-	struct dentry *res;
-
-	if (IS_ERR(filename))
-		return ERR_CAST(filename);
-	res = filename_create(dfd, filename, path, lookup_flags);
-	putname(filename);
-	return res;
+	return filename_create(dfd, getname_kernel(pathname),
+				path, lookup_flags);
 }
 EXPORT_SYMBOL(kern_path_create);
 
@@ -3488,13 +3488,7 @@
 struct dentry *user_path_create(int dfd, const char __user *pathname,
 				struct path *path, unsigned int lookup_flags)
 {
-	struct filename *tmp = getname(pathname);
-	struct dentry *res;
-	if (IS_ERR(tmp))
-		return ERR_CAST(tmp);
-	res = filename_create(dfd, tmp, path, lookup_flags);
-	putname(tmp);
-	return res;
+	return filename_create(dfd, getname(pathname), path, lookup_flags);
 }
 EXPORT_SYMBOL(user_path_create);
 
