forked from luck/tmp_suning_uos_patched
net/smc: fix up merge error with poll changes
My networking merge (commit 4e33d7d47943: "Pull networking fixes from David Miller") got the poll() handling conflict wrong for af_smc. The conflict between mya11e1d432b
("Revert changes to convert to ->poll_mask() and aio IOCB_CMD_POLL") and Ursula Braun's24ac3a08e6
("net/smc: rebuild nonblocking connect") should have left the call to sock_poll_wait() in place, just without the socket lock release/retake. And I really should have realized that. But happily, I at least asked Ursula to double-check the merge, and she set me right. This also fixes an incidental whitespace issue nearby that annoyed me while looking at this. Pointed-out-by: Ursula Braun <ubraun@linux.ibm.com> Cc: David Miller <davem@davemloft.net> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
d0fbad0aec
commit
410da1e12f
|
@ -1345,6 +1345,8 @@ static __poll_t smc_poll(struct file *file, struct socket *sock,
|
|||
if (sk->sk_err)
|
||||
mask |= EPOLLERR;
|
||||
} else {
|
||||
if (sk->sk_state != SMC_CLOSED)
|
||||
sock_poll_wait(file, sk_sleep(sk), wait);
|
||||
if (sk->sk_err)
|
||||
mask |= EPOLLERR;
|
||||
if ((sk->sk_shutdown == SHUTDOWN_MASK) ||
|
||||
|
@ -1370,7 +1372,6 @@ static __poll_t smc_poll(struct file *file, struct socket *sock,
|
|||
}
|
||||
if (smc->conn.urg_state == SMC_URG_VALID)
|
||||
mask |= EPOLLPRI;
|
||||
|
||||
}
|
||||
|
||||
return mask;
|
||||
|
|
Loading…
Reference in New Issue
Block a user