file: Merge __alloc_fd into alloc_fd
authorEric W. Biederman <ebiederm@xmission.com>
Fri, 20 Nov 2020 23:14:37 +0000 (17:14 -0600)
committerEric W. Biederman <ebiederm@xmission.com>
Thu, 10 Dec 2020 18:42:59 +0000 (12:42 -0600)
The function __alloc_fd was added to support binder[1].  With binder
fixed[2] there are no more users.

As alloc_fd just calls __alloc_fd with "files=current->files",
merge them together by transforming the files parameter into a
local variable initialized to current->files.

[1] dcfadfa4ec5a ("new helper: __alloc_fd()")
[2] 44d8047f1d87 ("binder: use standard functions to allocate fds")
Acked-by: Christian Brauner <christian.brauner@ubuntu.com>
v1: https://lkml.kernel.org/r/20200817220425.9389-16-ebiederm@xmission.com
Link: https://lkml.kernel.org/r/20201120231441.29911-20-ebiederm@xmission.com
Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
fs/file.c
include/linux/fdtable.h

index 07e25f1..6215637 100644 (file)
--- a/fs/file.c
+++ b/fs/file.c
@@ -480,9 +480,9 @@ static unsigned int find_next_fd(struct fdtable *fdt, unsigned int start)
 /*
  * allocate a file descriptor, mark it busy.
  */
-int __alloc_fd(struct files_struct *files,
-              unsigned start, unsigned end, unsigned flags)
+static int alloc_fd(unsigned start, unsigned end, unsigned flags)
 {
+       struct files_struct *files = current->files;
        unsigned int fd;
        int error;
        struct fdtable *fdt;
@@ -538,14 +538,9 @@ out:
        return error;
 }
 
-static int alloc_fd(unsigned start, unsigned end, unsigned flags)
-{
-       return __alloc_fd(current->files, start, end, flags);
-}
-
 int __get_unused_fd_flags(unsigned flags, unsigned long nofile)
 {
-       return __alloc_fd(current->files, 0, nofile, flags);
+       return alloc_fd(0, nofile, flags);
 }
 
 int get_unused_fd_flags(unsigned flags)
index a5ec736..dc476ae 100644 (file)
@@ -124,8 +124,6 @@ int iterate_fd(struct files_struct *, unsigned,
                int (*)(const void *, struct file *, unsigned),
                const void *);
 
-extern int __alloc_fd(struct files_struct *files,
-                     unsigned start, unsigned end, unsigned flags);
 extern int __close_fd(struct files_struct *files,
                      unsigned int fd);
 extern int __close_range(unsigned int fd, unsigned int max_fd, unsigned int flags);