CIFS: remove bad_network_name flag
authorGermano Percossi <germano.percossi@citrix.com>
Fri, 7 Apr 2017 11:29:37 +0000 (12:29 +0100)
committerWilly Tarreau <w@1wt.eu>
Tue, 20 Jun 2017 06:03:00 +0000 (08:03 +0200)
commit a0918f1ce6a43ac980b42b300ec443c154970979 upstream.

STATUS_BAD_NETWORK_NAME can be received during node failover,
causing the flag to be set and making the reconnect thread
always unsuccessful, thereafter.

Once the only place where it is set is removed, the remaining
bits are rendered moot.

Removing it does not prevent "mount" from failing when a non
existent share is passed.

What happens when the share really ceases to exist while the
share is mounted is undefined now as much as it was before.

Signed-off-by: Germano Percossi <germano.percossi@citrix.com>
Reviewed-by: Pavel Shilovsky <pshilov@microsoft.com>
Signed-off-by: Steve French <smfrench@gmail.com>
Signed-off-by: Willy Tarreau <w@1wt.eu>
fs/cifs/cifsglob.h
fs/cifs/smb2pdu.c

index 28708bbb3457e1a79c17450a6148fe5d4e7ac02d..b7f589918571994e77b6a4fcc5291a0d507dae99 100644 (file)
@@ -826,7 +826,6 @@ struct cifs_tcon {
        bool need_reconnect:1; /* connection reset, tid now invalid */
 #ifdef CONFIG_CIFS_SMB2
        bool print:1;           /* set if connection to printer share */
-       bool bad_network_name:1; /* set if ret status STATUS_BAD_NETWORK_NAME */
        __u32 capabilities;
        __u32 share_flags;
        __u32 maximal_access;
index 886ce5c2f2a1504711936ac2b08d5b5ef255a2ec..1a89bba33b1ca085d29ea99dc994f59920fbdc64 100644 (file)
@@ -720,9 +720,6 @@ SMB2_tcon(const unsigned int xid, struct cifs_ses *ses, const char *tree,
        else
                return -EIO;
 
-       if (tcon && tcon->bad_network_name)
-               return -ENOENT;
-
        unc_path = kmalloc(MAX_SHARENAME_LENGTH * 2, GFP_KERNEL);
        if (unc_path == NULL)
                return -ENOMEM;
@@ -809,8 +806,6 @@ tcon_exit:
 tcon_error_exit:
        if (rsp->hdr.Status == STATUS_BAD_NETWORK_NAME) {
                cifs_dbg(VFS, "BAD_NETWORK_NAME: %s\n", tree);
-               if (tcon)
-                       tcon->bad_network_name = true;
        }
        goto tcon_exit;
 }