2017-11-06 21:01:46

by Tom Talpey

[permalink] [raw]
Subject: RE: [Patch v5 08/21] CIFS: SMBD: Upper layer reconnects to SMB Direct session

> -----Original Message-----
> From: [email protected] [mailto:linux-cifs-
> [email protected]] On Behalf Of Long Li
> Sent: Monday, November 6, 2017 2:00 PM
> To: Matthew Wilcox <[email protected]>; Pavel Shilovsky
> <[email protected]>
> Cc: linux-cifs <[email protected]>; Stephen Hemminger
> <[email protected]>; [email protected]; Kernel Mailing List
> <[email protected]>; Steve French <[email protected]>
> Subject: RE: [Patch v5 08/21] CIFS: SMBD: Upper layer reconnects to SMB
> Direct session
>
> > -----Original Message-----
> > From: Matthew Wilcox
> > Sent: Monday, November 6, 2017 10:10 AM
> > To: Long Li <[email protected]>; Pavel Shilovsky <[email protected]>
> > Cc: linux-cifs <[email protected]>; Stephen Hemminger
> > <[email protected]>; [email protected]; Kernel Mailing
> > List <[email protected]>; Steve French <[email protected]>
> > Subject: RE: [Patch v5 08/21] CIFS: SMBD: Upper layer reconnects to SMB
> > Direct session
> >
> > Oh, I hadn't noticed that. Then I amend my suggestion to be:
> >
> > #ifdef CONFIG_CIFS_SMB_DIRECT
> > #define cifs_rdma_enabled(server) ((server)->rdma)
> > #else
> > #define cifs_rdma_enabled(server) 0
> > static inline void cifs_reconnect(struct TCP_Server_Info *server) { } #endif
>
> I will address those and update patch.

I don't think stubbing such a generic-looking function cifs_reconnect() under an RDMA conditional is a good idea. It would seem to hide what's truly going on, and deeply confuse someone who tried to code cifs_reconnect() on any other code path, thinking it would, well, reconnect.

How about cifs_rdma_reconnect()? That would be fine to override.

Tom.

>
> >
> > > -----Original Message-----
> > > From: Long Li
> > > Sent: Sunday, November 5, 2017 2:20 PM
> > > To: Long Li <[email protected]>; Matthew Wilcox
> > > <[email protected]>; Pavel Shilovsky <[email protected]>
> > > Cc: linux-cifs <[email protected]>; Stephen Hemminger
> > > <[email protected]>; [email protected]; Kernel Mailing
> > > List <[email protected]>; Steve French <[email protected]>
> > > Subject: RE: [Patch v5 08/21] CIFS: SMBD: Upper layer reconnects to
> > > SMB Direct session
> > >
> > >
> > >
> > > > -----Original Message-----
> > > > From: samba-technical
> > > > [mailto:[email protected]]
> > > > On Behalf Of Long Li via samba-technical
> > > > Sent: Sunday, November 5, 2017 10:37 AM
> > > > To: Matthew Wilcox <[email protected]>; Pavel Shilovsky
> > > > <[email protected]>
> > > > Cc: linux-cifs <[email protected]>; Stephen Hemminger
> > > > <[email protected]>; [email protected];
> > > > samba-technical <[email protected]>; Kernel Mailing
> > > > List <linux- [email protected]>; Steve French
> > > > <[email protected]>
> > > > Subject: RE: [Patch v5 08/21] CIFS: SMBD: Upper layer reconnects to
> > > > SMB Direct session
> > > >
> > > > > -----Original Message-----
> > > > > From: Matthew Wilcox
> > > > > Sent: Wednesday, November 1, 2017 12:45 PM
> > > > > To: Pavel Shilovsky <[email protected]>; Long Li
> > > > > <[email protected]>
> > > > > Cc: Steve French <[email protected]>; linux-cifs <linux-
> > > > > [email protected]>; samba-technical
> > > > > <[email protected]>;
> > > > > Kernel Mailing List <[email protected]>; linux-
> > > > > [email protected]; Tom Talpey <[email protected]>;
> > Stephen
> > > > > Hemminger <[email protected]>; Long Li
> > <[email protected]>
> > > > > Subject: RE: [Patch v5 08/21] CIFS: SMBD: Upper layer reconnects
> > > > > to SMB Direct session
> > > > >
> > > > > From: Pavel Shilovsky [mailto:[email protected]]
> > > > > > 2017-10-18 16:09 GMT-07:00 Long Li
> > <[email protected]>:
> > > > > > > From: Long Li <[email protected]>
> > > > > > >
> > > > > > > Do a reconnect on SMB Direct when it is used as the connection.
> > > > > > > Reconnect
> > > > > > can
> > > > > > > happen for many reasons and it's mostly the decision of SMB2
> > > > > > > upper
> > > > > layer.
> > > > > > >
> > > > > > > Signed-off-by: Long Li <[email protected]>
> > > > > > > ---
> > > > > > > fs/cifs/connect.c | 7 +++++++
> > > > > > > 1 file changed, 7 insertions(+)
> > > > > > >
> > > > > > > diff --git a/fs/cifs/connect.c b/fs/cifs/connect.c index
> > > > > > > 2c0b34a..8ca3c13 100644
> > > > > > > --- a/fs/cifs/connect.c
> > > > > > > +++ b/fs/cifs/connect.c
> > > > > > > @@ -406,7 +406,14 @@ cifs_reconnect(struct TCP_Server_Info
> > > > > > > *server)
> > > > > > >
> > > > > > > /* we should try only the port we connected to before */
> > > > > > > mutex_lock(&server->srv_mutex);
> > > > > > > +#ifdef CONFIG_CIFS_SMB_DIRECT
> > > > > > > + if (server->rdma)
> > > > > > > + rc = smbd_reconnect(server);
> > > > > > > + else
> > > > > > > + rc = generic_ip_connect(server);
> > > > > >
> > > > > > Minor: here and in other similar places we can remove #else part
> > > > > > below and put #endif before else block above.
> > > > > >
> > > > > > > +#else
> > > > > > > rc = generic_ip_connect(server);
> > > > > > > +#endif
> > > > >
> > > > > I'd suggest rather:
> > > > >
> > > > > #ifdef CONFIG_CIFS_SMB_DIRECT
> > > > > #define cifs_rdma_enabled(server) ((server)->rdma)
> > > > > #else
> > > > > #define cifs_rdma_enabled(server) 0
> > > > > #endif
> > > > >
> > > > > Then we don't need an ifdef in the users, just:
> > > > >
> > > > > if (cifs_rdma_enabled(server))
> > > > > rc = smbd_reconnect(server);
> > > > > else
> > > > > rc = generic_ip_connect(server);
> > >
> > > It doesn't work well, because smbd_reconnect is defined when
> > > CONFIG_CIFS_SMB_DIRECT is set. Now the compiler is complaining it
> > > can't find this function. Maybe compiler is not smart enough :)
> > >
> > > I have sent v6 for all the other comments.
> ��칻�&�~�&���+-
> ��ݶ��w��˛���m�b��\��"��^n�r���z���h����&���G���h�(�階
> �ݢj"���m�����z�ޖ���f���h���~�m�