[NET]: Avoid atomic xchg() for non-error case
[linux-block.git] / net / irda / af_irda.c
index 6f92f9c62990ab4854178cc67e72c2a71b2f64f7..f121f7de203261e0467c95adab5bb6fc64a33b8e 100644 (file)
@@ -1438,8 +1438,9 @@ static int irda_recvmsg_stream(struct kiocb *iocb, struct socket *sock,
                        /*
                         *      POSIX 1003.1g mandates this order.
                         */
-                       if (sk->sk_err)
-                               ret = sock_error(sk);
+                       ret = sock_error(sk);
+                       if (ret)
+                               break;
                        else if (sk->sk_shutdown & RCV_SHUTDOWN)
                                ;
                        else if (noblock)