mirror of
https://github.com/torvalds/linux.git
synced 2024-12-29 06:12:08 +00:00
af_iucv: avoid path quiesce of severed path in shutdown()
An af_iucv stress test showed -EPIPE results for sendmsg() calls. They are caused by quiescing a path even though it has been already severed by peer. For IUCV transport shutdown() consists of 2 steps: (1) sending the shutdown message to peer (2) quiescing the iucv path If the iucv path between these 2 steps is severed due to peer closing the path, the quiesce step is no longer needed. Signed-off-by: Ursula Braun <ursula.braun@de.ibm.com> Signed-off-by: Frank Blaschka <blaschka@linux.vnet.ibm.com> Reported-by: Philipp Hachtmann <phacht@linux.vnet.ibm.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
45cbb2e499
commit
1042cab862
@ -1542,7 +1542,8 @@ static int iucv_sock_shutdown(struct socket *sock, int how)
|
||||
|
||||
sk->sk_shutdown |= how;
|
||||
if (how == RCV_SHUTDOWN || how == SHUTDOWN_MASK) {
|
||||
if (iucv->transport == AF_IUCV_TRANS_IUCV) {
|
||||
if ((iucv->transport == AF_IUCV_TRANS_IUCV) &&
|
||||
iucv->path) {
|
||||
err = pr_iucv->path_quiesce(iucv->path, NULL);
|
||||
if (err)
|
||||
err = -ENOTCONN;
|
||||
|
Loading…
Reference in New Issue
Block a user