diff mbox series

[RFC,4/5] file: stop exposing receive_fd_user()

Message ID 20231130-vfs-files-fixes-v1-4-e73ca6f4ea83@kernel.org (mailing list archive)
State New, archived
Headers show
Series file: minor fixes | expand

Commit Message

Christian Brauner Nov. 30, 2023, 12:49 p.m. UTC
Not every subsystem needs to have their own specialized helper.
Just us the __receive_fd() helper.

Signed-off-by: Christian Brauner <brauner@kernel.org>
---
 include/linux/file.h | 7 -------
 include/net/scm.h    | 9 +++++++++
 net/compat.c         | 2 +-
 net/core/scm.c       | 2 +-
 4 files changed, 11 insertions(+), 9 deletions(-)

Comments

Jens Axboe Nov. 30, 2023, 2:23 p.m. UTC | #1
On 11/30/23 5:49 AM, Christian Brauner wrote:
> Not every subsystem needs to have their own specialized helper.
> Just us the __receive_fd() helper.

s/us/use
Jan Kara Nov. 30, 2023, 4:43 p.m. UTC | #2
On Thu 30-11-23 13:49:10, Christian Brauner wrote:
> Not every subsystem needs to have their own specialized helper.
> Just us the __receive_fd() helper.
> 
> Signed-off-by: Christian Brauner <brauner@kernel.org>

Modulo the typo Jens pointed out, feel free to add:

Reviewed-by: Jan Kara <jack@suse.cz>

								Honza

> ---
>  include/linux/file.h | 7 -------
>  include/net/scm.h    | 9 +++++++++
>  net/compat.c         | 2 +-
>  net/core/scm.c       | 2 +-
>  4 files changed, 11 insertions(+), 9 deletions(-)
> 
> diff --git a/include/linux/file.h b/include/linux/file.h
> index 6e9099d29343..c0d5219c2852 100644
> --- a/include/linux/file.h
> +++ b/include/linux/file.h
> @@ -101,13 +101,6 @@ extern int __receive_fd(struct file *file, int __user *ufd,
>  
>  extern int receive_fd(struct file *file, unsigned int o_flags);
>  
> -static inline int receive_fd_user(struct file *file, int __user *ufd,
> -				  unsigned int o_flags)
> -{
> -	if (ufd == NULL)
> -		return -EFAULT;
> -	return __receive_fd(file, ufd, o_flags);
> -}
>  int receive_fd_replace(int new_fd, struct file *file, unsigned int o_flags);
>  
>  extern void flush_delayed_fput(void);
> diff --git a/include/net/scm.h b/include/net/scm.h
> index e8c76b4be2fe..8aae2468bae0 100644
> --- a/include/net/scm.h
> +++ b/include/net/scm.h
> @@ -5,6 +5,7 @@
>  #include <linux/limits.h>
>  #include <linux/net.h>
>  #include <linux/cred.h>
> +#include <linux/file.h>
>  #include <linux/security.h>
>  #include <linux/pid.h>
>  #include <linux/nsproxy.h>
> @@ -208,5 +209,13 @@ static inline void scm_recv_unix(struct socket *sock, struct msghdr *msg,
>  	scm_destroy_cred(scm);
>  }
>  
> +static inline int scm_recv_one_fd(struct file *f, int __user *ufd,
> +				  unsigned int flags)
> +{
> +	if (!ufd)
> +		return -EFAULT;
> +	return __receive_fd(f, ufd, flags);
> +}
> +
>  #endif /* __LINUX_NET_SCM_H */
>  
> diff --git a/net/compat.c b/net/compat.c
> index 6564720f32b7..485db8ee9b28 100644
> --- a/net/compat.c
> +++ b/net/compat.c
> @@ -297,7 +297,7 @@ void scm_detach_fds_compat(struct msghdr *msg, struct scm_cookie *scm)
>  	int err = 0, i;
>  
>  	for (i = 0; i < fdmax; i++) {
> -		err = receive_fd_user(scm->fp->fp[i], cmsg_data + i, o_flags);
> +		err = scm_recv_one_fd(scm->fp->fp[i], cmsg_data + i, o_flags);
>  		if (err < 0)
>  			break;
>  	}
> diff --git a/net/core/scm.c b/net/core/scm.c
> index 880027ecf516..eec78e312550 100644
> --- a/net/core/scm.c
> +++ b/net/core/scm.c
> @@ -319,7 +319,7 @@ void scm_detach_fds(struct msghdr *msg, struct scm_cookie *scm)
>  	}
>  
>  	for (i = 0; i < fdmax; i++) {
> -		err = receive_fd_user(scm->fp->fp[i], cmsg_data + i, o_flags);
> +		err = scm_recv_one_fd(scm->fp->fp[i], cmsg_data + i, o_flags);
>  		if (err < 0)
>  			break;
>  	}
> 
> -- 
> 2.42.0
>
diff mbox series

Patch

diff --git a/include/linux/file.h b/include/linux/file.h
index 6e9099d29343..c0d5219c2852 100644
--- a/include/linux/file.h
+++ b/include/linux/file.h
@@ -101,13 +101,6 @@  extern int __receive_fd(struct file *file, int __user *ufd,
 
 extern int receive_fd(struct file *file, unsigned int o_flags);
 
-static inline int receive_fd_user(struct file *file, int __user *ufd,
-				  unsigned int o_flags)
-{
-	if (ufd == NULL)
-		return -EFAULT;
-	return __receive_fd(file, ufd, o_flags);
-}
 int receive_fd_replace(int new_fd, struct file *file, unsigned int o_flags);
 
 extern void flush_delayed_fput(void);
diff --git a/include/net/scm.h b/include/net/scm.h
index e8c76b4be2fe..8aae2468bae0 100644
--- a/include/net/scm.h
+++ b/include/net/scm.h
@@ -5,6 +5,7 @@ 
 #include <linux/limits.h>
 #include <linux/net.h>
 #include <linux/cred.h>
+#include <linux/file.h>
 #include <linux/security.h>
 #include <linux/pid.h>
 #include <linux/nsproxy.h>
@@ -208,5 +209,13 @@  static inline void scm_recv_unix(struct socket *sock, struct msghdr *msg,
 	scm_destroy_cred(scm);
 }
 
+static inline int scm_recv_one_fd(struct file *f, int __user *ufd,
+				  unsigned int flags)
+{
+	if (!ufd)
+		return -EFAULT;
+	return __receive_fd(f, ufd, flags);
+}
+
 #endif /* __LINUX_NET_SCM_H */
 
diff --git a/net/compat.c b/net/compat.c
index 6564720f32b7..485db8ee9b28 100644
--- a/net/compat.c
+++ b/net/compat.c
@@ -297,7 +297,7 @@  void scm_detach_fds_compat(struct msghdr *msg, struct scm_cookie *scm)
 	int err = 0, i;
 
 	for (i = 0; i < fdmax; i++) {
-		err = receive_fd_user(scm->fp->fp[i], cmsg_data + i, o_flags);
+		err = scm_recv_one_fd(scm->fp->fp[i], cmsg_data + i, o_flags);
 		if (err < 0)
 			break;
 	}
diff --git a/net/core/scm.c b/net/core/scm.c
index 880027ecf516..eec78e312550 100644
--- a/net/core/scm.c
+++ b/net/core/scm.c
@@ -319,7 +319,7 @@  void scm_detach_fds(struct msghdr *msg, struct scm_cookie *scm)
 	}
 
 	for (i = 0; i < fdmax; i++) {
-		err = receive_fd_user(scm->fp->fp[i], cmsg_data + i, o_flags);
+		err = scm_recv_one_fd(scm->fp->fp[i], cmsg_data + i, o_flags);
 		if (err < 0)
 			break;
 	}