summaryrefslogtreecommitdiffstats
path: root/fs/cifs/misc.c
diff options
context:
space:
mode:
authorPaulo Alcantara <palcantara@suse.de>2018-11-14 17:20:31 -0200
committerSteve French <stfrench@microsoft.com>2018-12-28 10:13:11 -0600
commita3a53b7603798fd875e2afbba7e2b9ba6b19c7c7 (patch)
tree211c5626d7a2e56f6175b4a516dcbcfbf37dde27 /fs/cifs/misc.c
parent23324407143dd923660378fd9b40b9a711972269 (diff)
downloadlinux-a3a53b7603798fd875e2afbba7e2b9ba6b19c7c7.tar.gz
linux-a3a53b7603798fd875e2afbba7e2b9ba6b19c7c7.tar.bz2
linux-a3a53b7603798fd875e2afbba7e2b9ba6b19c7c7.zip
cifs: Add support for failover in smb2_reconnect()
After a successful failover in cifs_reconnect(), the smb2_reconnect() function will make sure to reconnect every tcon to new target server. For SMB2+. Signed-off-by: Paulo Alcantara <palcantara@suse.de> Signed-off-by: Aurelien Aptel <aaptel@suse.com> Signed-off-by: Steve French <stfrench@microsoft.com>
Diffstat (limited to 'fs/cifs/misc.c')
-rw-r--r--fs/cifs/misc.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/fs/cifs/misc.c b/fs/cifs/misc.c
index 7c858d4c66f3..bee203055b30 100644
--- a/fs/cifs/misc.c
+++ b/fs/cifs/misc.c
@@ -952,3 +952,20 @@ void rqst_page_get_length(struct smb_rqst *rqst, unsigned int page,
else if (page == 0)
*len = rqst->rq_pagesz - rqst->rq_offset;
}
+
+void extract_unc_hostname(const char *unc, const char **h, size_t *len)
+{
+ const char *end;
+
+ /* skip initial slashes */
+ while (*unc && (*unc == '\\' || *unc == '/'))
+ unc++;
+
+ end = unc;
+
+ while (*end && !(*end == '\\' || *end == '/'))
+ end++;
+
+ *h = unc;
+ *len = end - unc;
+}