mirror of
https://github.com/torvalds/linux.git
synced 2026-05-31 02:24:24 +02:00
smb: client: make use of smbdirect_socket.status_wait
This will allow us to have common helper functions soon. Cc: Steve French <smfrench@gmail.com> Cc: Tom Talpey <tom@talpey.com> Cc: Long Li <longli@microsoft.com> Cc: linux-cifs@vger.kernel.org Cc: samba-technical@lists.samba.org Acked-by: Namjae Jeon <linkinjeon@kernel.org> Signed-off-by: Stefan Metzmacher <metze@samba.org> Signed-off-by: Steve French <stfrench@microsoft.com>
This commit is contained in:
parent
4ff3fa4e4a
commit
d9140ef074
|
|
@ -217,27 +217,27 @@ static int smbd_conn_upcall(
|
|||
case RDMA_CM_EVENT_ADDR_RESOLVED:
|
||||
WARN_ON_ONCE(sc->status != SMBDIRECT_SOCKET_RESOLVE_ADDR_RUNNING);
|
||||
sc->status = SMBDIRECT_SOCKET_RESOLVE_ROUTE_NEEDED;
|
||||
wake_up_interruptible(&info->status_wait);
|
||||
wake_up_interruptible(&sc->status_wait);
|
||||
break;
|
||||
|
||||
case RDMA_CM_EVENT_ROUTE_RESOLVED:
|
||||
WARN_ON_ONCE(sc->status != SMBDIRECT_SOCKET_RESOLVE_ROUTE_RUNNING);
|
||||
sc->status = SMBDIRECT_SOCKET_RDMA_CONNECT_NEEDED;
|
||||
wake_up_interruptible(&info->status_wait);
|
||||
wake_up_interruptible(&sc->status_wait);
|
||||
break;
|
||||
|
||||
case RDMA_CM_EVENT_ADDR_ERROR:
|
||||
log_rdma_event(ERR, "connecting failed event=%s\n", event_name);
|
||||
WARN_ON_ONCE(sc->status != SMBDIRECT_SOCKET_RESOLVE_ADDR_RUNNING);
|
||||
sc->status = SMBDIRECT_SOCKET_RESOLVE_ADDR_FAILED;
|
||||
wake_up_interruptible(&info->status_wait);
|
||||
wake_up_interruptible(&sc->status_wait);
|
||||
break;
|
||||
|
||||
case RDMA_CM_EVENT_ROUTE_ERROR:
|
||||
log_rdma_event(ERR, "connecting failed event=%s\n", event_name);
|
||||
WARN_ON_ONCE(sc->status != SMBDIRECT_SOCKET_RESOLVE_ROUTE_RUNNING);
|
||||
sc->status = SMBDIRECT_SOCKET_RESOLVE_ROUTE_FAILED;
|
||||
wake_up_interruptible(&info->status_wait);
|
||||
wake_up_interruptible(&sc->status_wait);
|
||||
break;
|
||||
|
||||
case RDMA_CM_EVENT_ESTABLISHED:
|
||||
|
|
@ -323,7 +323,7 @@ static int smbd_conn_upcall(
|
|||
|
||||
WARN_ON_ONCE(sc->status != SMBDIRECT_SOCKET_RDMA_CONNECT_RUNNING);
|
||||
sc->status = SMBDIRECT_SOCKET_NEGOTIATE_NEEDED;
|
||||
wake_up_interruptible(&info->status_wait);
|
||||
wake_up_interruptible(&sc->status_wait);
|
||||
break;
|
||||
|
||||
case RDMA_CM_EVENT_CONNECT_ERROR:
|
||||
|
|
@ -332,7 +332,7 @@ static int smbd_conn_upcall(
|
|||
log_rdma_event(ERR, "connecting failed event=%s\n", event_name);
|
||||
WARN_ON_ONCE(sc->status != SMBDIRECT_SOCKET_RDMA_CONNECT_RUNNING);
|
||||
sc->status = SMBDIRECT_SOCKET_RDMA_CONNECT_FAILED;
|
||||
wake_up_interruptible(&info->status_wait);
|
||||
wake_up_interruptible(&sc->status_wait);
|
||||
break;
|
||||
|
||||
case RDMA_CM_EVENT_DEVICE_REMOVAL:
|
||||
|
|
@ -341,12 +341,12 @@ static int smbd_conn_upcall(
|
|||
if (sc->status == SMBDIRECT_SOCKET_NEGOTIATE_FAILED) {
|
||||
log_rdma_event(ERR, "event=%s during negotiation\n", event_name);
|
||||
sc->status = SMBDIRECT_SOCKET_DISCONNECTED;
|
||||
wake_up(&info->status_wait);
|
||||
wake_up(&sc->status_wait);
|
||||
break;
|
||||
}
|
||||
|
||||
sc->status = SMBDIRECT_SOCKET_DISCONNECTED;
|
||||
wake_up_interruptible(&info->status_wait);
|
||||
wake_up_interruptible(&sc->status_wait);
|
||||
wake_up_interruptible(&sc->recv_io.reassembly.wait_queue);
|
||||
wake_up_interruptible_all(&info->wait_send_queue);
|
||||
break;
|
||||
|
|
@ -610,7 +610,7 @@ static void recv_done(struct ib_cq *cq, struct ib_wc *wc)
|
|||
else
|
||||
sc->status = SMBDIRECT_SOCKET_CONNECTED;
|
||||
|
||||
wake_up_interruptible(&info->status_wait);
|
||||
wake_up_interruptible(&sc->status_wait);
|
||||
return;
|
||||
|
||||
/* SMBD data transfer packet */
|
||||
|
|
@ -729,7 +729,7 @@ static struct rdma_cm_id *smbd_create_id(
|
|||
goto out;
|
||||
}
|
||||
rc = wait_event_interruptible_timeout(
|
||||
info->status_wait,
|
||||
sc->status_wait,
|
||||
sc->status != SMBDIRECT_SOCKET_RESOLVE_ADDR_RUNNING,
|
||||
msecs_to_jiffies(RDMA_RESOLVE_TIMEOUT));
|
||||
/* e.g. if interrupted returns -ERESTARTSYS */
|
||||
|
|
@ -756,7 +756,7 @@ static struct rdma_cm_id *smbd_create_id(
|
|||
goto out;
|
||||
}
|
||||
rc = wait_event_interruptible_timeout(
|
||||
info->status_wait,
|
||||
sc->status_wait,
|
||||
sc->status != SMBDIRECT_SOCKET_RESOLVE_ROUTE_RUNNING,
|
||||
msecs_to_jiffies(RDMA_RESOLVE_TIMEOUT));
|
||||
/* e.g. if interrupted returns -ERESTARTSYS */
|
||||
|
|
@ -1265,7 +1265,7 @@ static int smbd_negotiate(struct smbd_connection *info)
|
|||
return rc;
|
||||
|
||||
rc = wait_event_interruptible_timeout(
|
||||
info->status_wait,
|
||||
sc->status_wait,
|
||||
sc->status != SMBDIRECT_SOCKET_NEGOTIATE_RUNNING,
|
||||
secs_to_jiffies(SMBD_NEGOTIATE_TIMEOUT));
|
||||
log_rdma_event(INFO, "wait_event_interruptible_timeout rc=%d\n", rc);
|
||||
|
|
@ -1492,7 +1492,7 @@ void smbd_destroy(struct TCP_Server_Info *server)
|
|||
rdma_disconnect(sc->rdma.cm_id);
|
||||
log_rdma_event(INFO, "wait for transport being disconnected\n");
|
||||
wait_event_interruptible(
|
||||
info->status_wait,
|
||||
sc->status_wait,
|
||||
sc->status == SMBDIRECT_SOCKET_DISCONNECTED);
|
||||
}
|
||||
|
||||
|
|
@ -1709,7 +1709,7 @@ static struct smbd_connection *_smbd_get_connection(
|
|||
info->initiator_depth = 1;
|
||||
info->responder_resources = SMBD_CM_RESPONDER_RESOURCES;
|
||||
|
||||
init_waitqueue_head(&info->status_wait);
|
||||
init_waitqueue_head(&sc->status_wait);
|
||||
|
||||
sc->status = SMBDIRECT_SOCKET_CREATED;
|
||||
rc = smbd_ia_open(info, dstaddr, port);
|
||||
|
|
@ -1832,7 +1832,7 @@ static struct smbd_connection *_smbd_get_connection(
|
|||
}
|
||||
|
||||
wait_event_interruptible_timeout(
|
||||
info->status_wait,
|
||||
sc->status_wait,
|
||||
sc->status != SMBDIRECT_SOCKET_RDMA_CONNECT_RUNNING,
|
||||
msecs_to_jiffies(RDMA_RESOLVE_TIMEOUT));
|
||||
|
||||
|
|
@ -1889,7 +1889,7 @@ static struct smbd_connection *_smbd_get_connection(
|
|||
destroy_caches_and_workqueue(info);
|
||||
sc->status = SMBDIRECT_SOCKET_NEGOTIATE_FAILED;
|
||||
rdma_disconnect(sc->rdma.cm_id);
|
||||
wait_event(info->status_wait,
|
||||
wait_event(sc->status_wait,
|
||||
sc->status == SMBDIRECT_SOCKET_DISCONNECTED);
|
||||
|
||||
allocate_cache_failed:
|
||||
|
|
|
|||
|
|
@ -45,8 +45,6 @@ enum keep_alive_status {
|
|||
struct smbd_connection {
|
||||
struct smbdirect_socket socket;
|
||||
|
||||
wait_queue_head_t status_wait;
|
||||
|
||||
struct work_struct disconnect_work;
|
||||
struct work_struct post_send_credits_work;
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user