Re: [PATCH][RFC] move close_range(2) into fs/file.c, fold __close_range() into it

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sun, Jun 02, 2024 at 09:42:38PM +0100, Al Viro wrote:
> 	We never had callers for __close_range() except for close_range(2)
> itself.  Nothing of that sort has appeared in four years and if any users
> do show up, we can always separate those suckers again.
> 
> Signed-off-by: Al Viro <viro@xxxxxxxxxxxxxxxxxx>
> ---

Note, that the __close_range() solely existed (iirc) because want
close(2) and close_range(2) shouldn't end up in two separate files
because it is royally annoying to have to switch files for system calls
that conceptually do very similar things.

But I don't care enough so,
Reviewed-by: Christian Brauner <brauner@xxxxxxxxxx>

> diff --git a/fs/file.c b/fs/file.c
> index 8076aef9c210..f9fcebc7c838 100644
> --- a/fs/file.c
> +++ b/fs/file.c
> @@ -732,7 +732,7 @@ static inline void __range_close(struct files_struct *files, unsigned int fd,
>  }
>  
>  /**
> - * __close_range() - Close all file descriptors in a given range.
> + * sys_close_range() - Close all file descriptors in a given range.
>   *
>   * @fd:     starting file descriptor to close
>   * @max_fd: last file descriptor to close
> @@ -740,8 +740,10 @@ static inline void __range_close(struct files_struct *files, unsigned int fd,
>   *
>   * This closes a range of file descriptors. All file descriptors
>   * from @fd up to and including @max_fd are closed.
> + * Currently, errors to close a given file descriptor are ignored.
>   */
> -int __close_range(unsigned fd, unsigned max_fd, unsigned int flags)
> +SYSCALL_DEFINE3(close_range, unsigned int, fd, unsigned int, max_fd,
> +		unsigned int, flags)
>  {
>  	struct task_struct *me = current;
>  	struct files_struct *cur_fds = me->files, *fds = NULL;
> diff --git a/fs/open.c b/fs/open.c
> index 89cafb572061..7ee11c4de4ca 100644
> --- a/fs/open.c
> +++ b/fs/open.c
> @@ -1564,23 +1564,6 @@ SYSCALL_DEFINE1(close, unsigned int, fd)
>  	return retval;
>  }
>  
> -/**
> - * sys_close_range() - Close all file descriptors in a given range.
> - *
> - * @fd:     starting file descriptor to close
> - * @max_fd: last file descriptor to close
> - * @flags:  reserved for future extensions
> - *
> - * This closes a range of file descriptors. All file descriptors
> - * from @fd up to and including @max_fd are closed.
> - * Currently, errors to close a given file descriptor are ignored.
> - */
> -SYSCALL_DEFINE3(close_range, unsigned int, fd, unsigned int, max_fd,
> -		unsigned int, flags)
> -{
> -	return __close_range(fd, max_fd, flags);
> -}
> -
>  /*
>   * This routine simulates a hangup on the tty, to arrange that users
>   * are given clean terminals at login time.
> diff --git a/include/linux/fdtable.h b/include/linux/fdtable.h
> index 2944d4aa413b..4e7d1bcca5b7 100644
> --- a/include/linux/fdtable.h
> +++ b/include/linux/fdtable.h
> @@ -113,7 +113,6 @@ int iterate_fd(struct files_struct *, unsigned,
>  		const void *);
>  
>  extern int close_fd(unsigned int fd);
> -extern int __close_range(unsigned int fd, unsigned int max_fd, unsigned int flags);
>  extern struct file *file_close_fd(unsigned int fd);
>  extern int unshare_fd(unsigned long unshare_flags, unsigned int max_fds,
>  		      struct files_struct **new_fdp);




[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [NTFS 3]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [NTFS 3]     [Samba]     [Device Mapper]     [CEPH Development]

  Powered by Linux