SUNRPC: Ignore return value of ->xpo_sendto
authorChuck Lever <chuck.lever@oracle.com>
Mon, 3 Apr 2023 17:53:07 +0000 (13:53 -0400)
committerChuck Lever <chuck.lever@oracle.com>
Wed, 26 Apr 2023 13:05:01 +0000 (09:05 -0400)
Clean up: All callers of svc_process() ignore its return value, so
svc_process() can safely be converted to return void. Ditto for
svc_send().

The return value of ->xpo_sendto() is now used only as part of a
trace event.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
include/linux/sunrpc/svc.h
include/linux/sunrpc/svcsock.h
net/sunrpc/svc.c
net/sunrpc/svc_xprt.c

index f5af055..2d31121 100644 (file)
@@ -430,7 +430,7 @@ struct svc_serv *  svc_create_pooled(struct svc_program *, unsigned int,
                                     int (*threadfn)(void *data));
 int               svc_set_num_threads(struct svc_serv *, struct svc_pool *, int);
 int               svc_pool_stats_open(struct svc_serv *serv, struct file *file);
-int               svc_process(struct svc_rqst *);
+void              svc_process(struct svc_rqst *rqstp);
 int               bc_svc_process(struct svc_serv *, struct rpc_rqst *,
                        struct svc_rqst *);
 int               svc_register(const struct svc_serv *, struct net *, const int,
index bcc555c..dd73fa1 100644 (file)
@@ -56,7 +56,7 @@ static inline u32 svc_sock_final_rec(struct svc_sock *svsk)
  */
 void           svc_close_net(struct svc_serv *, struct net *);
 int            svc_recv(struct svc_rqst *, long);
-int            svc_send(struct svc_rqst *);
+void           svc_send(struct svc_rqst *rqstp);
 void           svc_drop(struct svc_rqst *);
 void           svc_sock_update_bufs(struct svc_serv *serv);
 bool           svc_alien_sock(struct net *net, int fd);
index 633aa1e..0aa8892 100644 (file)
@@ -1444,11 +1444,12 @@ err_system_err:
        goto sendit;
 }
 
-/*
- * Process the RPC request.
+/**
+ * svc_process - Execute one RPC transaction
+ * @rqstp: RPC transaction context
+ *
  */
-int
-svc_process(struct svc_rqst *rqstp)
+void svc_process(struct svc_rqst *rqstp)
 {
        struct kvec             *resv = &rqstp->rq_res.head[0];
        __be32 *p;
@@ -1484,7 +1485,8 @@ svc_process(struct svc_rqst *rqstp)
 
        if (!svc_process_common(rqstp))
                goto out_drop;
-       return svc_send(rqstp);
+       svc_send(rqstp);
+       return;
 
 out_baddir:
        svc_printk(rqstp, "bad direction 0x%08x, dropping request\n",
@@ -1492,7 +1494,6 @@ out_baddir:
        rqstp->rq_server->sv_stats->rpcbadfmt++;
 out_drop:
        svc_drop(rqstp);
-       return 0;
 }
 EXPORT_SYMBOL_GPL(svc_process);
 
index ba62929..36c79b7 100644 (file)
@@ -909,18 +909,20 @@ void svc_drop(struct svc_rqst *rqstp)
 }
 EXPORT_SYMBOL_GPL(svc_drop);
 
-/*
- * Return reply to client.
+/**
+ * svc_send - Return reply to client
+ * @rqstp: RPC transaction context
+ *
  */
-int svc_send(struct svc_rqst *rqstp)
+void svc_send(struct svc_rqst *rqstp)
 {
        struct svc_xprt *xprt;
-       int             len = -EFAULT;
        struct xdr_buf  *xb;
+       int status;
 
        xprt = rqstp->rq_xprt;
        if (!xprt)
-               goto out;
+               return;
 
        /* calculate over-all length */
        xb = &rqstp->rq_res;
@@ -930,15 +932,10 @@ int svc_send(struct svc_rqst *rqstp)
        trace_svc_xdr_sendto(rqstp->rq_xid, xb);
        trace_svc_stats_latency(rqstp);
 
-       len = xprt->xpt_ops->xpo_sendto(rqstp);
+       status = xprt->xpt_ops->xpo_sendto(rqstp);
 
-       trace_svc_send(rqstp, len);
+       trace_svc_send(rqstp, status);
        svc_xprt_release(rqstp);
-
-       if (len == -ECONNREFUSED || len == -ENOTCONN || len == -EAGAIN)
-               len = 0;
-out:
-       return len;
 }
 
 /*