exec: Remove do_execve_file
[sfrench/cifs-2.6.git] / fs / exec.c
index e6e8a9a7032784f1aa8ea23109ac4a091b1fb24b..23dfbb8206264dbfac31a4f360829e83d70a7e6f 100644 (file)
--- a/fs/exec.c
+++ b/fs/exec.c
@@ -1818,13 +1818,14 @@ static int exec_binprm(struct linux_binprm *bprm)
 /*
  * sys_execve() executes a new program.
  */
-static int __do_execve_file(int fd, struct filename *filename,
-                           struct user_arg_ptr argv,
-                           struct user_arg_ptr envp,
-                           int flags, struct file *file)
+static int do_execveat_common(int fd, struct filename *filename,
+                             struct user_arg_ptr argv,
+                             struct user_arg_ptr envp,
+                             int flags)
 {
        char *pathbuf = NULL;
        struct linux_binprm *bprm;
+       struct file *file;
        struct files_struct *displaced;
        int retval;
 
@@ -1863,8 +1864,7 @@ static int __do_execve_file(int fd, struct filename *filename,
        check_unsafe_exec(bprm);
        current->in_execve = 1;
 
-       if (!file)
-               file = do_open_execat(fd, filename, flags);
+       file = do_open_execat(fd, filename, flags);
        retval = PTR_ERR(file);
        if (IS_ERR(file))
                goto out_unmark;
@@ -1872,9 +1872,7 @@ static int __do_execve_file(int fd, struct filename *filename,
        sched_exec();
 
        bprm->file = file;
-       if (!filename) {
-               bprm->filename = "none";
-       } else if (fd == AT_FDCWD || filename->name[0] == '/') {
+       if (fd == AT_FDCWD || filename->name[0] == '/') {
                bprm->filename = filename->name;
        } else {
                if (filename->name[0] == '\0')
@@ -1935,8 +1933,7 @@ static int __do_execve_file(int fd, struct filename *filename,
        task_numa_free(current, false);
        free_bprm(bprm);
        kfree(pathbuf);
-       if (filename)
-               putname(filename);
+       putname(filename);
        if (displaced)
                put_files_struct(displaced);
        return retval;
@@ -1967,27 +1964,10 @@ out_files:
        if (displaced)
                reset_files_struct(displaced);
 out_ret:
-       if (filename)
-               putname(filename);
+       putname(filename);
        return retval;
 }
 
-static int do_execveat_common(int fd, struct filename *filename,
-                             struct user_arg_ptr argv,
-                             struct user_arg_ptr envp,
-                             int flags)
-{
-       return __do_execve_file(fd, filename, argv, envp, flags, NULL);
-}
-
-int do_execve_file(struct file *file, void *__argv, void *__envp)
-{
-       struct user_arg_ptr argv = { .ptr.native = __argv };
-       struct user_arg_ptr envp = { .ptr.native = __envp };
-
-       return __do_execve_file(AT_FDCWD, NULL, argv, envp, 0, file);
-}
-
 int do_execve(struct filename *filename,
        const char __user *const __user *__argv,
        const char __user *const __user *__envp)