Commit dba4a925 authored by Florent Revest's avatar Florent Revest Committed by Daniel Borkmann
Browse files

net: Remove the err argument from sock_from_file



Currently, the sock_from_file prototype takes an "err" pointer that is
either not set or set to -ENOTSOCK IFF the returned socket is NULL. This
makes the error redundant and it is ignored by a few callers.

This patch simplifies the API by letting callers deduce the error based
on whether the returned socket is NULL or not.

Suggested-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
Signed-off-by: default avatarFlorent Revest <revest@google.com>
Signed-off-by: default avatarDaniel Borkmann <daniel@iogearbox.net>
Reviewed-by: default avatarKP Singh <kpsingh@google.com>
Link: https://lore.kernel.org/bpf/20201204113609.1850150-1-revest@google.com
parent 5c667dca
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -416,12 +416,11 @@ static inline void ep_set_busy_poll_napi_id(struct epitem *epi)
	unsigned int napi_id;
	struct socket *sock;
	struct sock *sk;
	int err;

	if (!net_busy_loop_on())
		return;

	sock = sock_from_file(epi->ffd.file, &err);
	sock = sock_from_file(epi->ffd.file);
	if (!sock)
		return;

+8 −8
Original line number Diff line number Diff line
@@ -4356,9 +4356,9 @@ static int io_sendmsg(struct io_kiocb *req, bool force_nonblock,
	unsigned flags;
	int ret;

	sock = sock_from_file(req->file, &ret);
	sock = sock_from_file(req->file);
	if (unlikely(!sock))
		return ret;
		return -ENOTSOCK;

	if (req->async_data) {
		kmsg = req->async_data;
@@ -4405,9 +4405,9 @@ static int io_send(struct io_kiocb *req, bool force_nonblock,
	unsigned flags;
	int ret;

	sock = sock_from_file(req->file, &ret);
	sock = sock_from_file(req->file);
	if (unlikely(!sock))
		return ret;
		return -ENOTSOCK;

	ret = import_single_range(WRITE, sr->buf, sr->len, &iov, &msg.msg_iter);
	if (unlikely(ret))
@@ -4584,9 +4584,9 @@ static int io_recvmsg(struct io_kiocb *req, bool force_nonblock,
	unsigned flags;
	int ret, cflags = 0;

	sock = sock_from_file(req->file, &ret);
	sock = sock_from_file(req->file);
	if (unlikely(!sock))
		return ret;
		return -ENOTSOCK;

	if (req->async_data) {
		kmsg = req->async_data;
@@ -4647,9 +4647,9 @@ static int io_recv(struct io_kiocb *req, bool force_nonblock,
	unsigned flags;
	int ret, cflags = 0;

	sock = sock_from_file(req->file, &ret);
	sock = sock_from_file(req->file);
	if (unlikely(!sock))
		return ret;
		return -ENOTSOCK;

	if (req->flags & REQ_F_BUFFER_SELECT) {
		kbuf = io_recv_buffer_select(req, !force_nonblock);
+1 −1
Original line number Diff line number Diff line
@@ -240,7 +240,7 @@ int sock_sendmsg(struct socket *sock, struct msghdr *msg);
int sock_recvmsg(struct socket *sock, struct msghdr *msg, int flags);
struct file *sock_alloc_file(struct socket *sock, int flags, const char *dname);
struct socket *sockfd_lookup(int fd, int *err);
struct socket *sock_from_file(struct file *file, int *err);
struct socket *sock_from_file(struct file *file);
#define		     sockfd_put(sock) fput(sock->file)
int net_ratelimit(void);

+1 −2
Original line number Diff line number Diff line
@@ -68,9 +68,8 @@ struct update_classid_context {

static int update_classid_sock(const void *v, struct file *file, unsigned n)
{
	int err;
	struct update_classid_context *ctx = (void *)v;
	struct socket *sock = sock_from_file(file, &err);
	struct socket *sock = sock_from_file(file);

	if (sock) {
		spin_lock(&cgroup_sk_update_lock);
+1 −2
Original line number Diff line number Diff line
@@ -220,8 +220,7 @@ static ssize_t write_priomap(struct kernfs_open_file *of,

static int update_netprio(const void *v, struct file *file, unsigned n)
{
	int err;
	struct socket *sock = sock_from_file(file, &err);
	struct socket *sock = sock_from_file(file);
	if (sock) {
		spin_lock(&cgroup_sk_update_lock);
		sock_cgroup_set_prioidx(&sock->sk->sk_cgrp_data,
Loading