• Paulo Alcantara's avatar
    cifs: do not share tcons with DFS · 65303de8
    Paulo Alcantara authored
    This disables tcon re-use for DFS shares.
    
    tcon->dfs_path stores the path that the tcon should connect to when
    doing failing over.
    
    If that tcon is used multiple times e.g. 2 mounts using it with
    different prefixpath, each will need a different dfs_path but there is
    only one tcon. The other solution would be to split the tcon in 2
    tcons during failover but that is much harder.
    
    tcons could not be shared with DFS in cifs.ko because in a
    DFS namespace like:
    
              //domain/dfsroot -> /serverA/dfsroot, /serverB/dfsroot
    
              //serverA/dfsroot/link -> /serverA/target1/aa/bb
    
              //serverA/dfsroot/link2 -> /serverA/target1/cc/dd
    
    you can see that link and link2 are two DFS links that both resolve to
    the same target share (/serverA/target1), so cifs.ko will only contain a
    single tcon for both link and link2.
    
    The problem with that is, if we (auto)mount "link" and "link2", cifs.ko
    will only contain a single tcon for both DFS links so we couldn't
    perform failover or refresh the DFS cache for both links because
    tcon->dfs_path was set to either "link" or "link2", but not both --
    which is wrong.
    Signed-off-by: default avatarPaulo Alcantara (SUSE) <pc@cjr.nz>
    Reviewed-by: default avatarAurelien Aptel <aaptel@suse.com>
    Reviewed-by: default avatarRonnie Sahlberg <lsahlber@redhat.com>
    Signed-off-by: default avatarSteve French <stfrench@microsoft.com>
    65303de8
connect.c 144 KB