mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-26 21:54:11 +08:00
cifs: Handle -EINPROGRESS only when noblockcnt is set
We only want to avoid blocking in connect when mounting SMB root
filesystems, otherwise bail out from generic_ip_connect() so cifs.ko
can perform any reconnect failover appropriately.
This fixes DFS failover/reconnection tests in upstream buildbot.
Fixes: 8eecd1c2e5
("cifs: Add support for root file systems")
Signed-off-by: Paulo Alcantara (SUSE) <pc@cjr.nz>
Signed-off-by: Steve French <stfrench@microsoft.com>
This commit is contained in:
parent
7d194c2100
commit
d532cc7efd
@ -3882,8 +3882,12 @@ generic_ip_connect(struct TCP_Server_Info *server)
|
||||
|
||||
rc = socket->ops->connect(socket, saddr, slen,
|
||||
server->noblockcnt ? O_NONBLOCK : 0);
|
||||
|
||||
if (rc == -EINPROGRESS)
|
||||
/*
|
||||
* When mounting SMB root file systems, we do not want to block in
|
||||
* connect. Otherwise bail out and then let cifs_reconnect() perform
|
||||
* reconnect failover - if possible.
|
||||
*/
|
||||
if (server->noblockcnt && rc == -EINPROGRESS)
|
||||
rc = 0;
|
||||
if (rc < 0) {
|
||||
cifs_dbg(FYI, "Error %d connecting to server\n", rc);
|
||||
|
Loading…
Reference in New Issue
Block a user