summary refs log tree commit diff
path: root/fs/fsopen.c
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2019-12-17 20:09:08 -0500
committerAl Viro <viro@zeniv.linux.org.uk>2020-02-07 14:48:30 -0500
commitaa1918f9491442a007a0cbe41a31539233209777 (patch)
tree27107d8f773475bcee68123ec521d8ca9fdbaf95 /fs/fsopen.c
parent34264ae3fa22429ec4fd9151602342d1f21486eb (diff)
downloadlinux-aa1918f9491442a007a0cbe41a31539233209777.tar.gz
get rid of fs_value_is_filename_empty
Its behaviour is identical to that of fs_value_is_filename.
It makes no sense, anyway - LOOKUP_EMPTY affects nothing
whatsoever once the pathname has been imported from userland.
And both fs_value_is_filename and fs_value_is_filename_empty
carry an already imported pathname.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs/fsopen.c')
-rw-r--r--fs/fsopen.c16
1 files changed, 5 insertions, 11 deletions
diff --git a/fs/fsopen.c b/fs/fsopen.c
index 043ffa8dc263..c822d8924ca9 100644
--- a/fs/fsopen.c
+++ b/fs/fsopen.c
@@ -321,6 +321,7 @@ SYSCALL_DEFINE5(fsconfig,
 	struct fs_context *fc;
 	struct fd f;
 	int ret;
+	int lookup_flags = 0;
 
 	struct fs_parameter param = {
 		.type	= fs_value_is_undefined,
@@ -409,19 +410,12 @@ SYSCALL_DEFINE5(fsconfig,
 			goto out_key;
 		}
 		break;
+	case FSCONFIG_SET_PATH_EMPTY:
+		lookup_flags = LOOKUP_EMPTY;
+		/* fallthru */
 	case FSCONFIG_SET_PATH:
 		param.type = fs_value_is_filename;
-		param.name = getname_flags(_value, 0, NULL);
-		if (IS_ERR(param.name)) {
-			ret = PTR_ERR(param.name);
-			goto out_key;
-		}
-		param.dirfd = aux;
-		param.size = strlen(param.name->name);
-		break;
-	case FSCONFIG_SET_PATH_EMPTY:
-		param.type = fs_value_is_filename_empty;
-		param.name = getname_flags(_value, LOOKUP_EMPTY, NULL);
+		param.name = getname_flags(_value, lookup_flags, NULL);
 		if (IS_ERR(param.name)) {
 			ret = PTR_ERR(param.name);
 			goto out_key;