Commit 80ea3691 authored by Eric W. Biederman's avatar Eric W. Biederman Committed by Yongqiang Liu
Browse files

file: Rename __close_fd_get_file close_fd_get_file

mainline inclusion
from mainline-v5.11-rc1
commit 9fe83c43
category: bugfix
bugzilla: 188963, https://gitee.com/src-openeuler/kernel/issues/I7GUAN
CVE: NA

--------------------------------

The function close_fd_get_file is explicitly a variant of
__close_fd[1].  Now that __close_fd has been renamed close_fd, rename
close_fd_get_file to be consistent with close_fd.

When __alloc_fd, __close_fd and __fd_install were introduced the
double underscore indicated that the function took a struct
files_struct parameter.  The function __close_fd_get_file never has so
the naming has always been inconsistent.  This just cleans things up
so there are not any lingering mentions or references __close_fd left
in the code.

[1] 80cd7956 ("binder: fix use-after-free due to ksys_close() during fdget()")
Link: https://lkml.kernel.org/r/20201120231441.29911-23-ebiederm@xmission.com


Signed-off-by: default avatarEric W. Biederman <ebiederm@xmission.com>

Conflicts:
	drivers/android/binder.c
	fs/file.c
	fs/io_uring.c
	include/linux/fdtable.h

Signed-off-by: default avatarLi Nan <linan122@huawei.com>
Reviewed-by: default avatarYang Erkun <yangerkun@huawei.com>
Reviewed-by: default avatarWang Weiyang <wangweiyang2@huawei.com>
Signed-off-by: default avatarYongqiang Liu <liuyongqiang13@huawei.com>
parent 1e06b3d0
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -2290,7 +2290,7 @@ static void binder_deferred_fd_close(int fd)
	if (!twcb)
		return;
	init_task_work(&twcb->twork, binder_do_fd_close);
	__close_fd_get_file(fd, &twcb->file);
	close_fd_get_file(fd, &twcb->file);
	if (twcb->file) {
		filp_close(twcb->file, current->files);
		task_work_add(current, &twcb->twork, true);
+2 −2
Original line number Diff line number Diff line
@@ -696,11 +696,11 @@ int __close_fd(struct files_struct *files, unsigned fd)
EXPORT_SYMBOL(__close_fd); /* for ksys_close() */

/*
 * variant of __close_fd that gets a ref on the file for later fput.
 * variant of close_fd that gets a ref on the file for later fput.
 * The caller must ensure that filp_close() called on the file, and then
 * an fput().
 */
int __close_fd_get_file(unsigned int fd, struct file **res)
int close_fd_get_file(unsigned int fd, struct file **res)
{
	struct files_struct *files = current->files;
	struct file *file;
+1 −1
Original line number Diff line number Diff line
@@ -3885,7 +3885,7 @@ static int io_close(struct io_kiocb *req, bool force_nonblock,

	/* might be already done during nonblock submission */
	if (!close->put_file) {
		ret = __close_fd_get_file(close->fd, &close->put_file);
		ret = close_fd_get_file(close->fd, &close->put_file);
		if (ret < 0)
			return (ret == -ENOENT) ? -EBADF : ret;
	}
+1 −1
Original line number Diff line number Diff line
@@ -122,7 +122,7 @@ extern void __fd_install(struct files_struct *files,
		      unsigned int fd, struct file *file);
extern int __close_fd(struct files_struct *files,
		      unsigned int fd);
extern int __close_fd_get_file(unsigned int fd, struct file **res);
extern int close_fd_get_file(unsigned int fd, struct file **res);

extern struct kmem_cache *files_cachep;