diff mbox

[v5,08/21] CIFS: SMBD: Upper layer reconnects to SMB Direct session

Message ID 20171018230920.21042-9-longli@exchange.microsoft.com (mailing list archive)
State New, archived
Headers show

Commit Message

Long Li Oct. 18, 2017, 11:09 p.m. UTC
From: Long Li <longli@microsoft.com>

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@microsoft.com>
---
 fs/cifs/connect.c | 7 +++++++
 1 file changed, 7 insertions(+)

Comments

Pavel Shilovsky Nov. 1, 2017, 6:04 p.m. UTC | #1
2017-10-18 16:09 GMT-07:00 Long Li <longli@exchange.microsoft.com>:
> From: Long Li <longli@microsoft.com>
>
> 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@microsoft.com>
> ---
>  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
>                 if (rc) {
>                         cifs_dbg(FYI, "reconnect error %d\n", rc);
>                         mutex_unlock(&server->srv_mutex);
> --
> 2.7.4
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-cifs" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

--
Best regards,
Pavel Shilovsky
--
To unsubscribe from this list: send the line "unsubscribe linux-cifs" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Matthew Wilcox Nov. 1, 2017, 7:44 p.m. UTC | #2
From: Pavel Shilovsky [mailto:piastryyy@gmail.com]

> 2017-10-18 16:09 GMT-07:00 Long Li <longli@exchange.microsoft.com>:

> > From: Long Li <longli@microsoft.com>

> >

> > 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@microsoft.com>

> > ---

> >  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);
Long Li Nov. 5, 2017, 6:37 p.m. UTC | #3
> -----Original Message-----

> From: Matthew Wilcox

> Sent: Wednesday, November 1, 2017 12:45 PM

> To: Pavel Shilovsky <piastryyy@gmail.com>; Long Li <longli@microsoft.com>

> Cc: Steve French <sfrench@samba.org>; linux-cifs <linux-

> cifs@vger.kernel.org>; samba-technical <samba-technical@lists.samba.org>;

> Kernel Mailing List <linux-kernel@vger.kernel.org>; linux-

> rdma@vger.kernel.org; Tom Talpey <ttalpey@microsoft.com>; Stephen

> Hemminger <sthemmin@microsoft.com>; Long Li <longli@microsoft.com>

> Subject: RE: [Patch v5 08/21] CIFS: SMBD: Upper layer reconnects to SMB

> Direct session

> 

> From: Pavel Shilovsky [mailto:piastryyy@gmail.com]

> > 2017-10-18 16:09 GMT-07:00 Long Li <longli@exchange.microsoft.com>:

> > > From: Long Li <longli@microsoft.com>

> > >

> > > 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@microsoft.com>

> > > ---

> > >  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);


I will fix this. Thank you.

Long
Long Li Nov. 5, 2017, 7:19 p.m. UTC | #4
DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogc2FtYmEtdGVjaG5pY2Fs
IFttYWlsdG86c2FtYmEtdGVjaG5pY2FsLWJvdW5jZXNAbGlzdHMuc2FtYmEub3JnXQ0KPiBPbiBC
ZWhhbGYgT2YgTG9uZyBMaSB2aWEgc2FtYmEtdGVjaG5pY2FsDQo+IFNlbnQ6IFN1bmRheSwgTm92
ZW1iZXIgNSwgMjAxNyAxMDozNyBBTQ0KPiBUbzogTWF0dGhldyBXaWxjb3ggPG1hd2lsY294QG1p
Y3Jvc29mdC5jb20+OyBQYXZlbCBTaGlsb3Zza3kNCj4gPHBpYXN0cnl5eUBnbWFpbC5jb20+DQo+
IENjOiBsaW51eC1jaWZzIDxsaW51eC1jaWZzQHZnZXIua2VybmVsLm9yZz47IFN0ZXBoZW4gSGVt
bWluZ2VyDQo+IDxzdGhlbW1pbkBtaWNyb3NvZnQuY29tPjsgbGludXgtcmRtYUB2Z2VyLmtlcm5l
bC5vcmc7IHNhbWJhLXRlY2huaWNhbA0KPiA8c2FtYmEtdGVjaG5pY2FsQGxpc3RzLnNhbWJhLm9y
Zz47IEtlcm5lbCBNYWlsaW5nIExpc3QgPGxpbnV4LQ0KPiBrZXJuZWxAdmdlci5rZXJuZWwub3Jn
PjsgU3RldmUgRnJlbmNoIDxzZnJlbmNoQHNhbWJhLm9yZz4NCj4gU3ViamVjdDogUkU6IFtQYXRj
aCB2NSAwOC8yMV0gQ0lGUzogU01CRDogVXBwZXIgbGF5ZXIgcmVjb25uZWN0cyB0byBTTUINCj4g
RGlyZWN0IHNlc3Npb24NCj4gDQo+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiBG
cm9tOiBNYXR0aGV3IFdpbGNveA0KPiA+IFNlbnQ6IFdlZG5lc2RheSwgTm92ZW1iZXIgMSwgMjAx
NyAxMjo0NSBQTQ0KPiA+IFRvOiBQYXZlbCBTaGlsb3Zza3kgPHBpYXN0cnl5eUBnbWFpbC5jb20+
OyBMb25nIExpDQo+ID4gPGxvbmdsaUBtaWNyb3NvZnQuY29tPg0KPiA+IENjOiBTdGV2ZSBGcmVu
Y2ggPHNmcmVuY2hAc2FtYmEub3JnPjsgbGludXgtY2lmcyA8bGludXgtDQo+ID4gY2lmc0B2Z2Vy
Lmtlcm5lbC5vcmc+OyBzYW1iYS10ZWNobmljYWwNCj4gPiA8c2FtYmEtdGVjaG5pY2FsQGxpc3Rz
LnNhbWJhLm9yZz47DQo+ID4gS2VybmVsIE1haWxpbmcgTGlzdCA8bGludXgta2VybmVsQHZnZXIu
a2VybmVsLm9yZz47IGxpbnV4LQ0KPiA+IHJkbWFAdmdlci5rZXJuZWwub3JnOyBUb20gVGFscGV5
IDx0dGFscGV5QG1pY3Jvc29mdC5jb20+OyBTdGVwaGVuDQo+ID4gSGVtbWluZ2VyIDxzdGhlbW1p
bkBtaWNyb3NvZnQuY29tPjsgTG9uZyBMaSA8bG9uZ2xpQG1pY3Jvc29mdC5jb20+DQo+ID4gU3Vi
amVjdDogUkU6IFtQYXRjaCB2NSAwOC8yMV0gQ0lGUzogU01CRDogVXBwZXIgbGF5ZXIgcmVjb25u
ZWN0cyB0bw0KPiA+IFNNQiBEaXJlY3Qgc2Vzc2lvbg0KPiA+DQo+ID4gRnJvbTogUGF2ZWwgU2hp
bG92c2t5IFttYWlsdG86cGlhc3RyeXl5QGdtYWlsLmNvbV0NCj4gPiA+IDIwMTctMTAtMTggMTY6
MDkgR01ULTA3OjAwIExvbmcgTGkgPGxvbmdsaUBleGNoYW5nZS5taWNyb3NvZnQuY29tPjoNCj4g
PiA+ID4gRnJvbTogTG9uZyBMaSA8bG9uZ2xpQG1pY3Jvc29mdC5jb20+DQo+ID4gPiA+DQo+ID4g
PiA+IERvIGEgcmVjb25uZWN0IG9uIFNNQiBEaXJlY3Qgd2hlbiBpdCBpcyB1c2VkIGFzIHRoZSBj
b25uZWN0aW9uLg0KPiA+ID4gPiBSZWNvbm5lY3QNCj4gPiA+IGNhbg0KPiA+ID4gPiBoYXBwZW4g
Zm9yIG1hbnkgcmVhc29ucyBhbmQgaXQncyBtb3N0bHkgdGhlIGRlY2lzaW9uIG9mIFNNQjIgdXBw
ZXINCj4gPiBsYXllci4NCj4gPiA+ID4NCj4gPiA+ID4gU2lnbmVkLW9mZi1ieTogTG9uZyBMaSA8
bG9uZ2xpQG1pY3Jvc29mdC5jb20+DQo+ID4gPiA+IC0tLQ0KPiA+ID4gPiAgZnMvY2lmcy9jb25u
ZWN0LmMgfCA3ICsrKysrKysNCj4gPiA+ID4gIDEgZmlsZSBjaGFuZ2VkLCA3IGluc2VydGlvbnMo
KykNCj4gPiA+ID4NCj4gPiA+ID4gZGlmZiAtLWdpdCBhL2ZzL2NpZnMvY29ubmVjdC5jIGIvZnMv
Y2lmcy9jb25uZWN0LmMgaW5kZXgNCj4gPiA+ID4gMmMwYjM0YS4uOGNhM2MxMyAxMDA2NDQNCj4g
PiA+ID4gLS0tIGEvZnMvY2lmcy9jb25uZWN0LmMNCj4gPiA+ID4gKysrIGIvZnMvY2lmcy9jb25u
ZWN0LmMNCj4gPiA+ID4gQEAgLTQwNiw3ICs0MDYsMTQgQEAgY2lmc19yZWNvbm5lY3Qoc3RydWN0
IFRDUF9TZXJ2ZXJfSW5mbw0KPiA+ID4gPiAqc2VydmVyKQ0KPiA+ID4gPg0KPiA+ID4gPiAgICAg
ICAgICAgICAgICAgLyogd2Ugc2hvdWxkIHRyeSBvbmx5IHRoZSBwb3J0IHdlIGNvbm5lY3RlZCB0
byBiZWZvcmUgKi8NCj4gPiA+ID4gICAgICAgICAgICAgICAgIG11dGV4X2xvY2soJnNlcnZlci0+
c3J2X211dGV4KTsNCj4gPiA+ID4gKyNpZmRlZiBDT05GSUdfQ0lGU19TTUJfRElSRUNUDQo+ID4g
PiA+ICsgICAgICAgICAgICAgICBpZiAoc2VydmVyLT5yZG1hKQ0KPiA+ID4gPiArICAgICAgICAg
ICAgICAgICAgICAgICByYyA9IHNtYmRfcmVjb25uZWN0KHNlcnZlcik7DQo+ID4gPiA+ICsgICAg
ICAgICAgICAgICBlbHNlDQo+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIHJjID0gZ2Vu
ZXJpY19pcF9jb25uZWN0KHNlcnZlcik7DQo+ID4gPg0KPiA+ID4gTWlub3I6IGhlcmUgYW5kIGlu
IG90aGVyIHNpbWlsYXIgcGxhY2VzIHdlIGNhbiByZW1vdmUgI2Vsc2UgcGFydA0KPiA+ID4gYmVs
b3cgYW5kIHB1dCAjZW5kaWYgYmVmb3JlIGVsc2UgYmxvY2sgYWJvdmUuDQo+ID4gPg0KPiA+ID4g
PiArI2Vsc2UNCj4gPiA+ID4gICAgICAgICAgICAgICAgIHJjID0gZ2VuZXJpY19pcF9jb25uZWN0
KHNlcnZlcik7DQo+ID4gPiA+ICsjZW5kaWYNCj4gPg0KPiA+IEknZCBzdWdnZXN0IHJhdGhlcjoN
Cj4gPg0KPiA+ICNpZmRlZiBDT05GSUdfQ0lGU19TTUJfRElSRUNUDQo+ID4gI2RlZmluZSBjaWZz
X3JkbWFfZW5hYmxlZChzZXJ2ZXIpCSgoc2VydmVyKS0+cmRtYSkNCj4gPiAjZWxzZQ0KPiA+ICNk
ZWZpbmUgY2lmc19yZG1hX2VuYWJsZWQoc2VydmVyKQkwDQo+ID4gI2VuZGlmDQo+ID4NCj4gPiBU
aGVuIHdlIGRvbid0IG5lZWQgYW4gaWZkZWYgaW4gdGhlIHVzZXJzLCBqdXN0Og0KPiA+DQo+ID4g
CWlmIChjaWZzX3JkbWFfZW5hYmxlZChzZXJ2ZXIpKQ0KPiA+IAkJcmMgPSBzbWJkX3JlY29ubmVj
dChzZXJ2ZXIpOw0KPiA+IAllbHNlDQo+ID4gCQlyYyA9IGdlbmVyaWNfaXBfY29ubmVjdChzZXJ2
ZXIpOw0KDQpJdCBkb2Vzbid0IHdvcmsgd2VsbCwgYmVjYXVzZSBzbWJkX3JlY29ubmVjdCBpcyBk
ZWZpbmVkIHdoZW4gQ09ORklHX0NJRlNfU01CX0RJUkVDVCBpcyBzZXQuIE5vdyB0aGUgY29tcGls
ZXIgaXMgY29tcGxhaW5pbmcgaXQgY2FuJ3QgZmluZCB0aGlzIGZ1bmN0aW9uLiBNYXliZSBjb21w
aWxlciBpcyBub3Qgc21hcnQgZW5vdWdoIDopDQoNCkkgaGF2ZSBzZW50IHY2IGZvciBhbGwgdGhl
IG90aGVyIGNvbW1lbnRzLg0K
--
To unsubscribe from this list: send the line "unsubscribe linux-cifs" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Matthew Wilcox Nov. 6, 2017, 6:10 p.m. UTC | #5
T2gsIEkgaGFkbid0IG5vdGljZWQgdGhhdC4gIFRoZW4gSSBhbWVuZCBteSBzdWdnZXN0aW9uIHRv
IGJlOg0KDQojaWZkZWYgQ09ORklHX0NJRlNfU01CX0RJUkVDVA0KI2RlZmluZSBjaWZzX3JkbWFf
ZW5hYmxlZChzZXJ2ZXIpCSgoc2VydmVyKS0+cmRtYSkNCiNlbHNlDQojZGVmaW5lIGNpZnNfcmRt
YV9lbmFibGVkKHNlcnZlcikJMA0Kc3RhdGljIGlubGluZSB2b2lkIGNpZnNfcmVjb25uZWN0KHN0
cnVjdCBUQ1BfU2VydmVyX0luZm8gKnNlcnZlcikNCnsNCn0NCiNlbmRpZg0KDQo+IC0tLS0tT3Jp
Z2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IExvbmcgTGkNCj4gU2VudDogU3VuZGF5LCBOb3Zl
bWJlciA1LCAyMDE3IDI6MjAgUE0NCj4gVG86IExvbmcgTGkgPGxvbmdsaUBtaWNyb3NvZnQuY29t
PjsgTWF0dGhldyBXaWxjb3gNCj4gPG1hd2lsY294QG1pY3Jvc29mdC5jb20+OyBQYXZlbCBTaGls
b3Zza3kgPHBpYXN0cnl5eUBnbWFpbC5jb20+DQo+IENjOiBsaW51eC1jaWZzIDxsaW51eC1jaWZz
QHZnZXIua2VybmVsLm9yZz47IFN0ZXBoZW4gSGVtbWluZ2VyDQo+IDxzdGhlbW1pbkBtaWNyb3Nv
ZnQuY29tPjsgbGludXgtcmRtYUB2Z2VyLmtlcm5lbC5vcmc7IEtlcm5lbCBNYWlsaW5nIExpc3QN
Cj4gPGxpbnV4LWtlcm5lbEB2Z2VyLmtlcm5lbC5vcmc+OyBTdGV2ZSBGcmVuY2ggPHNmcmVuY2hA
c2FtYmEub3JnPg0KPiBTdWJqZWN0OiBSRTogW1BhdGNoIHY1IDA4LzIxXSBDSUZTOiBTTUJEOiBV
cHBlciBsYXllciByZWNvbm5lY3RzIHRvIFNNQg0KPiBEaXJlY3Qgc2Vzc2lvbg0KPiANCj4gDQo+
IA0KPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gRnJvbTogc2FtYmEtdGVjaG5p
Y2FsIFttYWlsdG86c2FtYmEtdGVjaG5pY2FsLWJvdW5jZXNAbGlzdHMuc2FtYmEub3JnXQ0KPiA+
IE9uIEJlaGFsZiBPZiBMb25nIExpIHZpYSBzYW1iYS10ZWNobmljYWwNCj4gPiBTZW50OiBTdW5k
YXksIE5vdmVtYmVyIDUsIDIwMTcgMTA6MzcgQU0NCj4gPiBUbzogTWF0dGhldyBXaWxjb3ggPG1h
d2lsY294QG1pY3Jvc29mdC5jb20+OyBQYXZlbCBTaGlsb3Zza3kNCj4gPiA8cGlhc3RyeXl5QGdt
YWlsLmNvbT4NCj4gPiBDYzogbGludXgtY2lmcyA8bGludXgtY2lmc0B2Z2VyLmtlcm5lbC5vcmc+
OyBTdGVwaGVuIEhlbW1pbmdlcg0KPiA+IDxzdGhlbW1pbkBtaWNyb3NvZnQuY29tPjsgbGludXgt
cmRtYUB2Z2VyLmtlcm5lbC5vcmc7IHNhbWJhLXRlY2huaWNhbA0KPiA+IDxzYW1iYS10ZWNobmlj
YWxAbGlzdHMuc2FtYmEub3JnPjsgS2VybmVsIE1haWxpbmcgTGlzdCA8bGludXgtDQo+ID4ga2Vy
bmVsQHZnZXIua2VybmVsLm9yZz47IFN0ZXZlIEZyZW5jaCA8c2ZyZW5jaEBzYW1iYS5vcmc+DQo+
ID4gU3ViamVjdDogUkU6IFtQYXRjaCB2NSAwOC8yMV0gQ0lGUzogU01CRDogVXBwZXIgbGF5ZXIg
cmVjb25uZWN0cyB0byBTTUINCj4gPiBEaXJlY3Qgc2Vzc2lvbg0KPiA+DQo+ID4gPiAtLS0tLU9y
aWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4gRnJvbTogTWF0dGhldyBXaWxjb3gNCj4gPiA+IFNl
bnQ6IFdlZG5lc2RheSwgTm92ZW1iZXIgMSwgMjAxNyAxMjo0NSBQTQ0KPiA+ID4gVG86IFBhdmVs
IFNoaWxvdnNreSA8cGlhc3RyeXl5QGdtYWlsLmNvbT47IExvbmcgTGkNCj4gPiA+IDxsb25nbGlA
bWljcm9zb2Z0LmNvbT4NCj4gPiA+IENjOiBTdGV2ZSBGcmVuY2ggPHNmcmVuY2hAc2FtYmEub3Jn
PjsgbGludXgtY2lmcyA8bGludXgtDQo+ID4gPiBjaWZzQHZnZXIua2VybmVsLm9yZz47IHNhbWJh
LXRlY2huaWNhbA0KPiA+ID4gPHNhbWJhLXRlY2huaWNhbEBsaXN0cy5zYW1iYS5vcmc+Ow0KPiA+
ID4gS2VybmVsIE1haWxpbmcgTGlzdCA8bGludXgta2VybmVsQHZnZXIua2VybmVsLm9yZz47IGxp
bnV4LQ0KPiA+ID4gcmRtYUB2Z2VyLmtlcm5lbC5vcmc7IFRvbSBUYWxwZXkgPHR0YWxwZXlAbWlj
cm9zb2Z0LmNvbT47IFN0ZXBoZW4NCj4gPiA+IEhlbW1pbmdlciA8c3RoZW1taW5AbWljcm9zb2Z0
LmNvbT47IExvbmcgTGkgPGxvbmdsaUBtaWNyb3NvZnQuY29tPg0KPiA+ID4gU3ViamVjdDogUkU6
IFtQYXRjaCB2NSAwOC8yMV0gQ0lGUzogU01CRDogVXBwZXIgbGF5ZXIgcmVjb25uZWN0cyB0bw0K
PiA+ID4gU01CIERpcmVjdCBzZXNzaW9uDQo+ID4gPg0KPiA+ID4gRnJvbTogUGF2ZWwgU2hpbG92
c2t5IFttYWlsdG86cGlhc3RyeXl5QGdtYWlsLmNvbV0NCj4gPiA+ID4gMjAxNy0xMC0xOCAxNjow
OSBHTVQtMDc6MDAgTG9uZyBMaSA8bG9uZ2xpQGV4Y2hhbmdlLm1pY3Jvc29mdC5jb20+Og0KPiA+
ID4gPiA+IEZyb206IExvbmcgTGkgPGxvbmdsaUBtaWNyb3NvZnQuY29tPg0KPiA+ID4gPiA+DQo+
ID4gPiA+ID4gRG8gYSByZWNvbm5lY3Qgb24gU01CIERpcmVjdCB3aGVuIGl0IGlzIHVzZWQgYXMg
dGhlIGNvbm5lY3Rpb24uDQo+ID4gPiA+ID4gUmVjb25uZWN0DQo+ID4gPiA+IGNhbg0KPiA+ID4g
PiA+IGhhcHBlbiBmb3IgbWFueSByZWFzb25zIGFuZCBpdCdzIG1vc3RseSB0aGUgZGVjaXNpb24g
b2YgU01CMiB1cHBlcg0KPiA+ID4gbGF5ZXIuDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBTaWduZWQt
b2ZmLWJ5OiBMb25nIExpIDxsb25nbGlAbWljcm9zb2Z0LmNvbT4NCj4gPiA+ID4gPiAtLS0NCj4g
PiA+ID4gPiAgZnMvY2lmcy9jb25uZWN0LmMgfCA3ICsrKysrKysNCj4gPiA+ID4gPiAgMSBmaWxl
IGNoYW5nZWQsIDcgaW5zZXJ0aW9ucygrKQ0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gZGlmZiAtLWdp
dCBhL2ZzL2NpZnMvY29ubmVjdC5jIGIvZnMvY2lmcy9jb25uZWN0LmMgaW5kZXgNCj4gPiA+ID4g
PiAyYzBiMzRhLi44Y2EzYzEzIDEwMDY0NA0KPiA+ID4gPiA+IC0tLSBhL2ZzL2NpZnMvY29ubmVj
dC5jDQo+ID4gPiA+ID4gKysrIGIvZnMvY2lmcy9jb25uZWN0LmMNCj4gPiA+ID4gPiBAQCAtNDA2
LDcgKzQwNiwxNCBAQCBjaWZzX3JlY29ubmVjdChzdHJ1Y3QgVENQX1NlcnZlcl9JbmZvDQo+ID4g
PiA+ID4gKnNlcnZlcikNCj4gPiA+ID4gPg0KPiA+ID4gPiA+ICAgICAgICAgICAgICAgICAvKiB3
ZSBzaG91bGQgdHJ5IG9ubHkgdGhlIHBvcnQgd2UgY29ubmVjdGVkIHRvIGJlZm9yZSAqLw0KPiA+
ID4gPiA+ICAgICAgICAgICAgICAgICBtdXRleF9sb2NrKCZzZXJ2ZXItPnNydl9tdXRleCk7DQo+
ID4gPiA+ID4gKyNpZmRlZiBDT05GSUdfQ0lGU19TTUJfRElSRUNUDQo+ID4gPiA+ID4gKyAgICAg
ICAgICAgICAgIGlmIChzZXJ2ZXItPnJkbWEpDQo+ID4gPiA+ID4gKyAgICAgICAgICAgICAgICAg
ICAgICAgcmMgPSBzbWJkX3JlY29ubmVjdChzZXJ2ZXIpOw0KPiA+ID4gPiA+ICsgICAgICAgICAg
ICAgICBlbHNlDQo+ID4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgcmMgPSBnZW5lcmlj
X2lwX2Nvbm5lY3Qoc2VydmVyKTsNCj4gPiA+ID4NCj4gPiA+ID4gTWlub3I6IGhlcmUgYW5kIGlu
IG90aGVyIHNpbWlsYXIgcGxhY2VzIHdlIGNhbiByZW1vdmUgI2Vsc2UgcGFydA0KPiA+ID4gPiBi
ZWxvdyBhbmQgcHV0ICNlbmRpZiBiZWZvcmUgZWxzZSBibG9jayBhYm92ZS4NCj4gPiA+ID4NCj4g
PiA+ID4gPiArI2Vsc2UNCj4gPiA+ID4gPiAgICAgICAgICAgICAgICAgcmMgPSBnZW5lcmljX2lw
X2Nvbm5lY3Qoc2VydmVyKTsNCj4gPiA+ID4gPiArI2VuZGlmDQo+ID4gPg0KPiA+ID4gSSdkIHN1
Z2dlc3QgcmF0aGVyOg0KPiA+ID4NCj4gPiA+ICNpZmRlZiBDT05GSUdfQ0lGU19TTUJfRElSRUNU
DQo+ID4gPiAjZGVmaW5lIGNpZnNfcmRtYV9lbmFibGVkKHNlcnZlcikJKChzZXJ2ZXIpLT5yZG1h
KQ0KPiA+ID4gI2Vsc2UNCj4gPiA+ICNkZWZpbmUgY2lmc19yZG1hX2VuYWJsZWQoc2VydmVyKQkw
DQo+ID4gPiAjZW5kaWYNCj4gPiA+DQo+ID4gPiBUaGVuIHdlIGRvbid0IG5lZWQgYW4gaWZkZWYg
aW4gdGhlIHVzZXJzLCBqdXN0Og0KPiA+ID4NCj4gPiA+IAlpZiAoY2lmc19yZG1hX2VuYWJsZWQo
c2VydmVyKSkNCj4gPiA+IAkJcmMgPSBzbWJkX3JlY29ubmVjdChzZXJ2ZXIpOw0KPiA+ID4gCWVs
c2UNCj4gPiA+IAkJcmMgPSBnZW5lcmljX2lwX2Nvbm5lY3Qoc2VydmVyKTsNCj4gDQo+IEl0IGRv
ZXNuJ3Qgd29yayB3ZWxsLCBiZWNhdXNlIHNtYmRfcmVjb25uZWN0IGlzIGRlZmluZWQgd2hlbg0K
PiBDT05GSUdfQ0lGU19TTUJfRElSRUNUIGlzIHNldC4gTm93IHRoZSBjb21waWxlciBpcyBjb21w
bGFpbmluZyBpdCBjYW4ndCBmaW5kDQo+IHRoaXMgZnVuY3Rpb24uIE1heWJlIGNvbXBpbGVyIGlz
IG5vdCBzbWFydCBlbm91Z2ggOikNCj4gDQo+IEkgaGF2ZSBzZW50IHY2IGZvciBhbGwgdGhlIG90
aGVyIGNvbW1lbnRzLg0K
--
To unsubscribe from this list: send the line "unsubscribe linux-cifs" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Long Li Nov. 6, 2017, 6:59 p.m. UTC | #6
> -----Original Message-----

> From: Matthew Wilcox

> Sent: Monday, November 6, 2017 10:10 AM

> To: Long Li <longli@microsoft.com>; Pavel Shilovsky <piastryyy@gmail.com>

> Cc: linux-cifs <linux-cifs@vger.kernel.org>; Stephen Hemminger

> <sthemmin@microsoft.com>; linux-rdma@vger.kernel.org; Kernel Mailing

> List <linux-kernel@vger.kernel.org>; Steve French <sfrench@samba.org>

> 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.

> 

> > -----Original Message-----

> > From: Long Li

> > Sent: Sunday, November 5, 2017 2:20 PM

> > To: Long Li <longli@microsoft.com>; Matthew Wilcox

> > <mawilcox@microsoft.com>; Pavel Shilovsky <piastryyy@gmail.com>

> > Cc: linux-cifs <linux-cifs@vger.kernel.org>; Stephen Hemminger

> > <sthemmin@microsoft.com>; linux-rdma@vger.kernel.org; Kernel Mailing

> > List <linux-kernel@vger.kernel.org>; Steve French <sfrench@samba.org>

> > Subject: RE: [Patch v5 08/21] CIFS: SMBD: Upper layer reconnects to

> > SMB Direct session

> >

> >

> >

> > > -----Original Message-----

> > > From: samba-technical

> > > [mailto:samba-technical-bounces@lists.samba.org]

> > > On Behalf Of Long Li via samba-technical

> > > Sent: Sunday, November 5, 2017 10:37 AM

> > > To: Matthew Wilcox <mawilcox@microsoft.com>; Pavel Shilovsky

> > > <piastryyy@gmail.com>

> > > Cc: linux-cifs <linux-cifs@vger.kernel.org>; Stephen Hemminger

> > > <sthemmin@microsoft.com>; linux-rdma@vger.kernel.org;

> > > samba-technical <samba-technical@lists.samba.org>; Kernel Mailing

> > > List <linux- kernel@vger.kernel.org>; Steve French

> > > <sfrench@samba.org>

> > > 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@gmail.com>; Long Li

> > > > <longli@microsoft.com>

> > > > Cc: Steve French <sfrench@samba.org>; linux-cifs <linux-

> > > > cifs@vger.kernel.org>; samba-technical

> > > > <samba-technical@lists.samba.org>;

> > > > Kernel Mailing List <linux-kernel@vger.kernel.org>; linux-

> > > > rdma@vger.kernel.org; Tom Talpey <ttalpey@microsoft.com>;

> Stephen

> > > > Hemminger <sthemmin@microsoft.com>; Long Li

> <longli@microsoft.com>

> > > > Subject: RE: [Patch v5 08/21] CIFS: SMBD: Upper layer reconnects

> > > > to SMB Direct session

> > > >

> > > > From: Pavel Shilovsky [mailto:piastryyy@gmail.com]

> > > > > 2017-10-18 16:09 GMT-07:00 Long Li

> <longli@exchange.microsoft.com>:

> > > > > > From: Long Li <longli@microsoft.com>

> > > > > >

> > > > > > 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@microsoft.com>

> > > > > > ---

> > > > > >  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.
Tom Talpey Nov. 6, 2017, 8:25 p.m. UTC | #7
> -----Original Message-----

> From: linux-cifs-owner@vger.kernel.org [mailto:linux-cifs-

> owner@vger.kernel.org] On Behalf Of Long Li

> Sent: Monday, November 6, 2017 2:00 PM

> To: Matthew Wilcox <mawilcox@microsoft.com>; Pavel Shilovsky

> <piastryyy@gmail.com>

> Cc: linux-cifs <linux-cifs@vger.kernel.org>; Stephen Hemminger

> <sthemmin@microsoft.com>; linux-rdma@vger.kernel.org; Kernel Mailing List

> <linux-kernel@vger.kernel.org>; Steve French <sfrench@samba.org>

> 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@microsoft.com>; Pavel Shilovsky <piastryyy@gmail.com>

> > Cc: linux-cifs <linux-cifs@vger.kernel.org>; Stephen Hemminger

> > <sthemmin@microsoft.com>; linux-rdma@vger.kernel.org; Kernel Mailing

> > List <linux-kernel@vger.kernel.org>; Steve French <sfrench@samba.org>

> > 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 <longli@microsoft.com>; Matthew Wilcox

> > > <mawilcox@microsoft.com>; Pavel Shilovsky <piastryyy@gmail.com>

> > > Cc: linux-cifs <linux-cifs@vger.kernel.org>; Stephen Hemminger

> > > <sthemmin@microsoft.com>; linux-rdma@vger.kernel.org; Kernel Mailing

> > > List <linux-kernel@vger.kernel.org>; Steve French <sfrench@samba.org>

> > > Subject: RE: [Patch v5 08/21] CIFS: SMBD: Upper layer reconnects to

> > > SMB Direct session

> > >

> > >

> > >

> > > > -----Original Message-----

> > > > From: samba-technical

> > > > [mailto:samba-technical-bounces@lists.samba.org]

> > > > On Behalf Of Long Li via samba-technical

> > > > Sent: Sunday, November 5, 2017 10:37 AM

> > > > To: Matthew Wilcox <mawilcox@microsoft.com>; Pavel Shilovsky

> > > > <piastryyy@gmail.com>

> > > > Cc: linux-cifs <linux-cifs@vger.kernel.org>; Stephen Hemminger

> > > > <sthemmin@microsoft.com>; linux-rdma@vger.kernel.org;

> > > > samba-technical <samba-technical@lists.samba.org>; Kernel Mailing

> > > > List <linux- kernel@vger.kernel.org>; Steve French

> > > > <sfrench@samba.org>

> > > > 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@gmail.com>; Long Li

> > > > > <longli@microsoft.com>

> > > > > Cc: Steve French <sfrench@samba.org>; linux-cifs <linux-

> > > > > cifs@vger.kernel.org>; samba-technical

> > > > > <samba-technical@lists.samba.org>;

> > > > > Kernel Mailing List <linux-kernel@vger.kernel.org>; linux-

> > > > > rdma@vger.kernel.org; Tom Talpey <ttalpey@microsoft.com>;

> > Stephen

> > > > > Hemminger <sthemmin@microsoft.com>; Long Li

> > <longli@microsoft.com>

> > > > > Subject: RE: [Patch v5 08/21] CIFS: SMBD: Upper layer reconnects

> > > > > to SMB Direct session

> > > > >

> > > > > From: Pavel Shilovsky [mailto:piastryyy@gmail.com]

> > > > > > 2017-10-18 16:09 GMT-07:00 Long Li

> > <longli@exchange.microsoft.com>:

> > > > > > > From: Long Li <longli@microsoft.com>

> > > > > > >

> > > > > > > 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@microsoft.com>

> > > > > > > ---

> > > > > > >  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�
Long Li Nov. 6, 2017, 8:46 p.m. UTC | #8
> -----Original Message-----

> From: Tom Talpey

> Sent: Monday, November 6, 2017 12:26 PM

> To: Long Li <longli@microsoft.com>; Matthew Wilcox

> <mawilcox@microsoft.com>; Pavel Shilovsky <piastryyy@gmail.com>

> Cc: linux-cifs <linux-cifs@vger.kernel.org>; Stephen Hemminger

> <sthemmin@microsoft.com>; linux-rdma@vger.kernel.org; Kernel Mailing

> List <linux-kernel@vger.kernel.org>; Steve French <sfrench@samba.org>

> Subject: RE: [Patch v5 08/21] CIFS: SMBD: Upper layer reconnects to SMB

> Direct session

> 

> > -----Original Message-----

> > From: linux-cifs-owner@vger.kernel.org [mailto:linux-cifs-

> > owner@vger.kernel.org] On Behalf Of Long Li

> > Sent: Monday, November 6, 2017 2:00 PM

> > To: Matthew Wilcox <mawilcox@microsoft.com>; Pavel Shilovsky

> > <piastryyy@gmail.com>

> > Cc: linux-cifs <linux-cifs@vger.kernel.org>; Stephen Hemminger

> > <sthemmin@microsoft.com>; linux-rdma@vger.kernel.org; Kernel Mailing

> > List <linux-kernel@vger.kernel.org>; Steve French <sfrench@samba.org>

> > 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@microsoft.com>; Pavel Shilovsky

> > > <piastryyy@gmail.com>

> > > Cc: linux-cifs <linux-cifs@vger.kernel.org>; Stephen Hemminger

> > > <sthemmin@microsoft.com>; linux-rdma@vger.kernel.org; Kernel

> Mailing

> > > List <linux-kernel@vger.kernel.org>; Steve French

> > > <sfrench@samba.org>

> > > 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@microsoft.com>; Matthew Wilcox

> > > > <mawilcox@microsoft.com>; Pavel Shilovsky <piastryyy@gmail.com>

> > > > Cc: linux-cifs <linux-cifs@vger.kernel.org>; Stephen Hemminger

> > > > <sthemmin@microsoft.com>; linux-rdma@vger.kernel.org; Kernel

> > > > Mailing List <linux-kernel@vger.kernel.org>; Steve French

> > > > <sfrench@samba.org>

> > > > Subject: RE: [Patch v5 08/21] CIFS: SMBD: Upper layer reconnects

> > > > to SMB Direct session

> > > >

> > > >

> > > >

> > > > > -----Original Message-----

> > > > > From: samba-technical

> > > > > [mailto:samba-technical-bounces@lists.samba.org]

> > > > > On Behalf Of Long Li via samba-technical

> > > > > Sent: Sunday, November 5, 2017 10:37 AM

> > > > > To: Matthew Wilcox <mawilcox@microsoft.com>; Pavel Shilovsky

> > > > > <piastryyy@gmail.com>

> > > > > Cc: linux-cifs <linux-cifs@vger.kernel.org>; Stephen Hemminger

> > > > > <sthemmin@microsoft.com>; linux-rdma@vger.kernel.org;

> > > > > samba-technical <samba-technical@lists.samba.org>; Kernel

> > > > > Mailing List <linux- kernel@vger.kernel.org>; Steve French

> > > > > <sfrench@samba.org>

> > > > > 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@gmail.com>; Long Li

> > > > > > <longli@microsoft.com>

> > > > > > Cc: Steve French <sfrench@samba.org>; linux-cifs <linux-

> > > > > > cifs@vger.kernel.org>; samba-technical

> > > > > > <samba-technical@lists.samba.org>;

> > > > > > Kernel Mailing List <linux-kernel@vger.kernel.org>; linux-

> > > > > > rdma@vger.kernel.org; Tom Talpey <ttalpey@microsoft.com>;

> > > Stephen

> > > > > > Hemminger <sthemmin@microsoft.com>; Long Li

> > > <longli@microsoft.com>

> > > > > > Subject: RE: [Patch v5 08/21] CIFS: SMBD: Upper layer

> > > > > > reconnects to SMB Direct session

> > > > > >

> > > > > > From: Pavel Shilovsky [mailto:piastryyy@gmail.com]

> > > > > > > 2017-10-18 16:09 GMT-07:00 Long Li

> > > <longli@exchange.microsoft.com>:

> > > > > > > > From: Long Li <longli@microsoft.com>

> > > > > > > >

> > > > > > > > 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@microsoft.com>

> > > > > > > > ---

> > > > > > > >  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
diff mbox

Patch

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);
+#else
 		rc = generic_ip_connect(server);
+#endif
 		if (rc) {
 			cifs_dbg(FYI, "reconnect error %d\n", rc);
 			mutex_unlock(&server->srv_mutex);