tcp: annotate data races in __tcp_oow_rate_limited()
[platform/kernel/linux-starfive.git] / net / sunrpc / xprtsock.c
index f55ff51..05aa326 100644 (file)
@@ -261,7 +261,7 @@ static void xs_format_common_peer_addresses(struct rpc_xprt *xprt)
        switch (sap->sa_family) {
        case AF_LOCAL:
                sun = xs_addr_un(xprt);
-               strlcpy(buf, sun->sun_path, sizeof(buf));
+               strscpy(buf, sun->sun_path, sizeof(buf));
                xprt->address_strings[RPC_DISPLAY_ADDR] =
                                                kstrdup(buf, GFP_KERNEL);
                break;
@@ -364,7 +364,7 @@ static ssize_t
 xs_read_kvec(struct socket *sock, struct msghdr *msg, int flags,
                struct kvec *kvec, size_t count, size_t seek)
 {
-       iov_iter_kvec(&msg->msg_iter, READ, kvec, 1, count);
+       iov_iter_kvec(&msg->msg_iter, ITER_DEST, kvec, 1, count);
        return xs_sock_recvmsg(sock, msg, flags, seek);
 }
 
@@ -373,7 +373,7 @@ xs_read_bvec(struct socket *sock, struct msghdr *msg, int flags,
                struct bio_vec *bvec, unsigned long nr, size_t count,
                size_t seek)
 {
-       iov_iter_bvec(&msg->msg_iter, READ, bvec, nr, count);
+       iov_iter_bvec(&msg->msg_iter, ITER_DEST, bvec, nr, count);
        return xs_sock_recvmsg(sock, msg, flags, seek);
 }
 
@@ -381,7 +381,7 @@ static ssize_t
 xs_read_discard(struct socket *sock, struct msghdr *msg, int flags,
                size_t count)
 {
-       iov_iter_discard(&msg->msg_iter, READ, count);
+       iov_iter_discard(&msg->msg_iter, ITER_DEST, count);
        return sock_recvmsg(sock, msg, flags);
 }
 
@@ -1978,8 +1978,7 @@ static void xs_local_connect(struct rpc_xprt *xprt, struct rpc_task *task)
                 * we'll need to figure out how to pass a namespace to
                 * connect.
                 */
-               task->tk_rpc_status = -ENOTCONN;
-               rpc_exit(task, -ENOTCONN);
+               rpc_task_set_rpc_status(task, -ENOTCONN);
                goto out_wake;
        }
        ret = xs_local_setup_socket(transport);
@@ -2154,6 +2153,7 @@ static void xs_tcp_shutdown(struct rpc_xprt *xprt)
        switch (skst) {
        case TCP_FIN_WAIT1:
        case TCP_FIN_WAIT2:
+       case TCP_LAST_ACK:
                break;
        case TCP_ESTABLISHED:
        case TCP_CLOSE_WAIT: