|
@@ -543,19 +543,17 @@ libcfs_sock_accept (struct socket **newsockp, struct socket *sock)
|
|
|
|
|
|
newsock->ops = sock->ops;
|
|
|
|
|
|
- set_current_state(TASK_INTERRUPTIBLE);
|
|
|
- add_wait_queue(sk_sleep(sock->sk), &wait);
|
|
|
-
|
|
|
rc = sock->ops->accept(sock, newsock, O_NONBLOCK);
|
|
|
if (rc == -EAGAIN) {
|
|
|
/* Nothing ready, so wait for activity */
|
|
|
+ set_current_state(TASK_INTERRUPTIBLE);
|
|
|
+ add_wait_queue(sk_sleep(sock->sk), &wait);
|
|
|
schedule();
|
|
|
+ remove_wait_queue(sk_sleep(sock->sk), &wait);
|
|
|
+ set_current_state(TASK_RUNNING);
|
|
|
rc = sock->ops->accept(sock, newsock, O_NONBLOCK);
|
|
|
}
|
|
|
|
|
|
- remove_wait_queue(sk_sleep(sock->sk), &wait);
|
|
|
- set_current_state(TASK_RUNNING);
|
|
|
-
|
|
|
if (rc != 0)
|
|
|
goto failed;
|
|
|
|