cifs: Make extract_hostname function public
authorSamuel Cabrero <scabrero@suse.de>
Mon, 30 Nov 2020 18:02:47 +0000 (19:02 +0100)
committerSteve French <stfrench@microsoft.com>
Mon, 14 Dec 2020 15:16:22 +0000 (09:16 -0600)
Move the function to misc.c and give it a public header.

Signed-off-by: Samuel Cabrero <scabrero@suse.de>
Reviewed-by: Aurelien Aptel <aaptel@suse.com>
Signed-off-by: Steve French <stfrench@microsoft.com>
fs/cifs/cifsproto.h
fs/cifs/connect.c
fs/cifs/misc.c

index aa7a717c34ab6cd85cd0df899c372d13a3f06507..3fe0c4a0d36d2cd8e90dd25ce3f68fbc0cac9cb1 100644 (file)
@@ -617,6 +617,7 @@ int smb2_parse_query_directory(struct cifs_tcon *tcon, struct kvec *rsp_iov,
 struct super_block *cifs_get_tcp_super(struct TCP_Server_Info *server);
 void cifs_put_tcp_super(struct super_block *sb);
 int update_super_prepath(struct cifs_tcon *tcon, char *prefix);
+char *extract_hostname(const char *unc);
 
 #ifdef CONFIG_CIFS_DFS_UPCALL
 static inline int get_dfs_path(const unsigned int xid, struct cifs_ses *ses,
index 95b12f148735e19419b10065bec8b9b1ca45480d..d3836db33e7ccc383508f590f214ef4a09a8ebbd 100644 (file)
@@ -77,7 +77,6 @@ static int ip_connect(struct TCP_Server_Info *server);
 static int generic_ip_connect(struct TCP_Server_Info *server);
 static void tlink_rb_insert(struct rb_root *root, struct tcon_link *new_tlink);
 static void cifs_prune_tlinks(struct work_struct *work);
-static char *extract_hostname(const char *unc);
 
 /*
  * Resolve hostname and set ip addr in tcp ses. Useful for hostnames that may
@@ -1025,39 +1024,6 @@ next_pdu:
        module_put_and_exit(0);
 }
 
-/* extract the host portion of the UNC string */
-static char *
-extract_hostname(const char *unc)
-{
-       const char *src;
-       char *dst, *delim;
-       unsigned int len;
-
-       /* skip double chars at beginning of string */
-       /* BB: check validity of these bytes? */
-       if (strlen(unc) < 3)
-               return ERR_PTR(-EINVAL);
-       for (src = unc; *src && *src == '\\'; src++)
-               ;
-       if (!*src)
-               return ERR_PTR(-EINVAL);
-
-       /* delimiter between hostname and sharename is always '\\' now */
-       delim = strchr(src, '\\');
-       if (!delim)
-               return ERR_PTR(-EINVAL);
-
-       len = delim - src;
-       dst = kmalloc((len + 1), GFP_KERNEL);
-       if (dst == NULL)
-               return ERR_PTR(-ENOMEM);
-
-       memcpy(dst, src, len);
-       dst[len] = '\0';
-
-       return dst;
-}
-
 /** Returns true if srcaddr isn't specified and rhs isn't
  * specified, or if srcaddr is specified and
  * matches the IP address of the rhs argument.
index 1c14cf01dbef064594778feec796dc02c3dc7f7d..3d5cc25c167f5d87ca6c14a4e95aed42b85420a9 100644 (file)
@@ -1195,3 +1195,35 @@ out:
        cifs_put_tcon_super(sb);
        return rc;
 }
+
+/* extract the host portion of the UNC string */
+char *extract_hostname(const char *unc)
+{
+       const char *src;
+       char *dst, *delim;
+       unsigned int len;
+
+       /* skip double chars at beginning of string */
+       /* BB: check validity of these bytes? */
+       if (strlen(unc) < 3)
+               return ERR_PTR(-EINVAL);
+       for (src = unc; *src && *src == '\\'; src++)
+               ;
+       if (!*src)
+               return ERR_PTR(-EINVAL);
+
+       /* delimiter between hostname and sharename is always '\\' now */
+       delim = strchr(src, '\\');
+       if (!delim)
+               return ERR_PTR(-EINVAL);
+
+       len = delim - src;
+       dst = kmalloc((len + 1), GFP_KERNEL);
+       if (dst == NULL)
+               return ERR_PTR(-ENOMEM);
+
+       memcpy(dst, src, len);
+       dst[len] = '\0';
+
+       return dst;
+}