> -----Original Message----- > From: Tom Talpey > Sent: Monday, November 6, 2017 12:26 PM > To: Long Li <longli@xxxxxxxxxxxxx>; Matthew Wilcox > <mawilcox@xxxxxxxxxxxxx>; Pavel Shilovsky <piastryyy@xxxxxxxxx> > Cc: linux-cifs <linux-cifs@xxxxxxxxxxxxxxx>; Stephen Hemminger > <sthemmin@xxxxxxxxxxxxx>; linux-rdma@xxxxxxxxxxxxxxx; Kernel Mailing > List <linux-kernel@xxxxxxxxxxxxxxx>; Steve French <sfrench@xxxxxxxxx> > Subject: RE: [Patch v5 08/21] CIFS: SMBD: Upper layer reconnects to SMB > Direct session > > > -----Original Message----- > > From: linux-cifs-owner@xxxxxxxxxxxxxxx [mailto:linux-cifs- > > owner@xxxxxxxxxxxxxxx] On Behalf Of Long Li > > Sent: Monday, November 6, 2017 2:00 PM > > To: Matthew Wilcox <mawilcox@xxxxxxxxxxxxx>; Pavel Shilovsky > > <piastryyy@xxxxxxxxx> > > Cc: linux-cifs <linux-cifs@xxxxxxxxxxxxxxx>; Stephen Hemminger > > <sthemmin@xxxxxxxxxxxxx>; linux-rdma@xxxxxxxxxxxxxxx; Kernel Mailing > > List <linux-kernel@xxxxxxxxxxxxxxx>; Steve French <sfrench@xxxxxxxxx> > > 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 <longli@xxxxxxxxxxxxx>; Pavel Shilovsky > > > <piastryyy@xxxxxxxxx> > > > Cc: linux-cifs <linux-cifs@xxxxxxxxxxxxxxx>; Stephen Hemminger > > > <sthemmin@xxxxxxxxxxxxx>; linux-rdma@xxxxxxxxxxxxxxx; Kernel > Mailing > > > List <linux-kernel@xxxxxxxxxxxxxxx>; Steve French > > > <sfrench@xxxxxxxxx> > > > 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. Yes this makes more sense, this is the approach I'm going to code. > > Tom. > > > > > > > > > > -----Original Message----- > > > > From: Long Li > > > > Sent: Sunday, November 5, 2017 2:20 PM > > > > To: Long Li <longli@xxxxxxxxxxxxx>; Matthew Wilcox > > > > <mawilcox@xxxxxxxxxxxxx>; Pavel Shilovsky <piastryyy@xxxxxxxxx> > > > > Cc: linux-cifs <linux-cifs@xxxxxxxxxxxxxxx>; Stephen Hemminger > > > > <sthemmin@xxxxxxxxxxxxx>; linux-rdma@xxxxxxxxxxxxxxx; Kernel > > > > Mailing List <linux-kernel@xxxxxxxxxxxxxxx>; Steve French > > > > <sfrench@xxxxxxxxx> > > > > Subject: RE: [Patch v5 08/21] CIFS: SMBD: Upper layer reconnects > > > > to SMB Direct session > > > > > > > > > > > > > > > > > -----Original Message----- > > > > > From: samba-technical > > > > > [mailto:samba-technical-bounces@xxxxxxxxxxxxxxx] > > > > > On Behalf Of Long Li via samba-technical > > > > > Sent: Sunday, November 5, 2017 10:37 AM > > > > > To: Matthew Wilcox <mawilcox@xxxxxxxxxxxxx>; Pavel Shilovsky > > > > > <piastryyy@xxxxxxxxx> > > > > > Cc: linux-cifs <linux-cifs@xxxxxxxxxxxxxxx>; Stephen Hemminger > > > > > <sthemmin@xxxxxxxxxxxxx>; linux-rdma@xxxxxxxxxxxxxxx; > > > > > samba-technical <samba-technical@xxxxxxxxxxxxxxx>; Kernel > > > > > Mailing List <linux- kernel@xxxxxxxxxxxxxxx>; Steve French > > > > > <sfrench@xxxxxxxxx> > > > > > 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 <piastryyy@xxxxxxxxx>; Long Li > > > > > > <longli@xxxxxxxxxxxxx> > > > > > > Cc: Steve French <sfrench@xxxxxxxxx>; linux-cifs <linux- > > > > > > cifs@xxxxxxxxxxxxxxx>; samba-technical > > > > > > <samba-technical@xxxxxxxxxxxxxxx>; > > > > > > Kernel Mailing List <linux-kernel@xxxxxxxxxxxxxxx>; linux- > > > > > > rdma@xxxxxxxxxxxxxxx; Tom Talpey <ttalpey@xxxxxxxxxxxxx>; > > > Stephen > > > > > > Hemminger <sthemmin@xxxxxxxxxxxxx>; Long Li > > > <longli@xxxxxxxxxxxxx> > > > > > > Subject: RE: [Patch v5 08/21] CIFS: SMBD: Upper layer > > > > > > reconnects to SMB Direct session > > > > > > > > > > > > From: Pavel Shilovsky [mailto:piastryyy@xxxxxxxxx] > > > > > > > 2017-10-18 16:09 GMT-07:00 Long Li > > > <longli@xxxxxxxxxxxxxxxxxxxxxx>: > > > > > > > > From: Long Li <longli@xxxxxxxxxxxxx> > > > > > > > > > > > > > > > > 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 <longli@xxxxxxxxxxxxx> > > > > > > > > --- > > > > > > > > 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 ��.n��������+%������w��{.n�����{���fk��ܨ}���Ơz�j:+v�����w����ޙ��&�)ߡ�a����z�ޗ���ݢj��w�f