RE: [[PATCH v1] 23/37] [CIFS] SMBD: Implement API for upper layer to reconnect transport

From: Long Li
Date: Mon Aug 14 2017 - 19:37:24 EST




> -----Original Message-----
> From: Tom Talpey
> Sent: Monday, August 14, 2017 2:03 PM
> To: Long Li <longli@xxxxxxxxxxxxx>; Steve French <sfrench@xxxxxxxxx>;
> linux-cifs@xxxxxxxxxxxxxxx; samba-technical@xxxxxxxxxxxxxxx; linux-
> kernel@xxxxxxxxxxxxxxx
> Subject: RE: [[PATCH v1] 23/37] [CIFS] SMBD: Implement API for upper layer
> to reconnect transport
>
> > -----Original Message-----
> > From: linux-cifs-owner@xxxxxxxxxxxxxxx [mailto:linux-cifs-
> > owner@xxxxxxxxxxxxxxx] On Behalf Of Long Li
> > Sent: Wednesday, August 2, 2017 4:11 PM
> > To: Steve French <sfrench@xxxxxxxxx>; linux-cifs@xxxxxxxxxxxxxxx;
> > samba- technical@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx
> > Cc: Long Li <longli@xxxxxxxxxxxxx>
> > Subject: [[PATCH v1] 23/37] [CIFS] SMBD: Implement API for upper layer
> > to reconnect transport
> >
> > +int cifs_reconnect_rdma_session(struct TCP_Server_Info *server) {
> > + log_rdma_event("reconnecting rdma session\n");
> > +
> > + // why reconnect while it is still connected?
> > + if (server->rdma_ses->transport_status == CIFS_RDMA_CONNECTED)
> {
> > + log_rdma_event("still connected, not reconnecting\n");
> > + return -EINVAL;
> > + }
>
> Why is this check needed?

This was used in early stage of development. It's probably not needed anymore. Will look into this.

>
> > +
> > + // wait until the transport is destroyed
> > + while (server->rdma_ses->transport_status !=
> CIFS_RDMA_DESTROYED)
> > + msleep(1);
>
> Polling!? Please plan to implement a proper handshake for connection logic.

Will look into using wait queue.