diff mbox series

[v4,02/11] cifs: Make extract_sharename function public

Message ID 20201130180257.31787-3-scabrero@suse.de (mailing list archive)
State New, archived
Headers show
Series Witness protocol support for transparent failover | expand

Commit Message

Samuel Cabrero Nov. 30, 2020, 6:02 p.m. UTC
Move the function to misc.c

Signed-off-by: Samuel Cabrero <scabrero@suse.de>
---
 fs/cifs/cache.c     | 24 ------------------------
 fs/cifs/cifsproto.h |  1 +
 fs/cifs/fscache.c   |  1 +
 fs/cifs/fscache.h   |  1 -
 fs/cifs/misc.c      | 24 ++++++++++++++++++++++++
 5 files changed, 26 insertions(+), 25 deletions(-)

Comments

Steve French Dec. 12, 2020, 5:50 a.m. UTC | #1
updated version of the patch attached (rebased on current for-next).
Tenatively merged into cifs-2.6.git for-next

On Mon, Nov 30, 2020 at 12:05 PM Samuel Cabrero <scabrero@suse.de> wrote:
>
> Move the function to misc.c
>
> Signed-off-by: Samuel Cabrero <scabrero@suse.de>
> ---
>  fs/cifs/cache.c     | 24 ------------------------
>  fs/cifs/cifsproto.h |  1 +
>  fs/cifs/fscache.c   |  1 +
>  fs/cifs/fscache.h   |  1 -
>  fs/cifs/misc.c      | 24 ++++++++++++++++++++++++
>  5 files changed, 26 insertions(+), 25 deletions(-)
>
> diff --git a/fs/cifs/cache.c b/fs/cifs/cache.c
> index 0f2adecb94f2..488fe0ffc1ef 100644
> --- a/fs/cifs/cache.c
> +++ b/fs/cifs/cache.c
> @@ -53,30 +53,6 @@ const struct fscache_cookie_def cifs_fscache_server_index_def = {
>         .type = FSCACHE_COOKIE_TYPE_INDEX,
>  };
>
> -char *extract_sharename(const char *treename)
> -{
> -       const char *src;
> -       char *delim, *dst;
> -       int len;
> -
> -       /* skip double chars at the beginning */
> -       src = treename + 2;
> -
> -       /* share name is always preceded by '\\' now */
> -       delim = strchr(src, '\\');
> -       if (!delim)
> -               return ERR_PTR(-EINVAL);
> -       delim++;
> -       len = strlen(delim);
> -
> -       /* caller has to free the memory */
> -       dst = kstrndup(delim, len, GFP_KERNEL);
> -       if (!dst)
> -               return ERR_PTR(-ENOMEM);
> -
> -       return dst;
> -}
> -
>  static enum
>  fscache_checkaux cifs_fscache_super_check_aux(void *cookie_netfs_data,
>                                               const void *data,
> diff --git a/fs/cifs/cifsproto.h b/fs/cifs/cifsproto.h
> index d716e81d86fa..5f997a01fb45 100644
> --- a/fs/cifs/cifsproto.h
> +++ b/fs/cifs/cifsproto.h
> @@ -621,6 +621,7 @@ 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);
> +char *extract_sharename(const char *unc);
>
>  #ifdef CONFIG_CIFS_DFS_UPCALL
>  static inline int get_dfs_path(const unsigned int xid, struct cifs_ses *ses,
> diff --git a/fs/cifs/fscache.c b/fs/cifs/fscache.c
> index da688185403c..20d24af33ee2 100644
> --- a/fs/cifs/fscache.c
> +++ b/fs/cifs/fscache.c
> @@ -22,6 +22,7 @@
>  #include "cifsglob.h"
>  #include "cifs_debug.h"
>  #include "cifs_fs_sb.h"
> +#include "cifsproto.h"
>
>  /*
>   * Key layout of CIFS server cache index object
> diff --git a/fs/cifs/fscache.h b/fs/cifs/fscache.h
> index 1091633d2adb..e811f2dd7619 100644
> --- a/fs/cifs/fscache.h
> +++ b/fs/cifs/fscache.h
> @@ -57,7 +57,6 @@ extern const struct fscache_cookie_def cifs_fscache_inode_object_def;
>
>  extern int cifs_fscache_register(void);
>  extern void cifs_fscache_unregister(void);
> -extern char *extract_sharename(const char *);
>
>  /*
>   * fscache.c
> diff --git a/fs/cifs/misc.c b/fs/cifs/misc.c
> index 3d5cc25c167f..f0a1c24751b2 100644
> --- a/fs/cifs/misc.c
> +++ b/fs/cifs/misc.c
> @@ -1227,3 +1227,27 @@ char *extract_hostname(const char *unc)
>
>         return dst;
>  }
> +
> +char *extract_sharename(const char *unc)
> +{
> +       const char *src;
> +       char *delim, *dst;
> +       int len;
> +
> +       /* skip double chars at the beginning */
> +       src = unc + 2;
> +
> +       /* share name is always preceded by '\\' now */
> +       delim = strchr(src, '\\');
> +       if (!delim)
> +               return ERR_PTR(-EINVAL);
> +       delim++;
> +       len = strlen(delim);
> +
> +       /* caller has to free the memory */
> +       dst = kstrndup(delim, len, GFP_KERNEL);
> +       if (!dst)
> +               return ERR_PTR(-ENOMEM);
> +
> +       return dst;
> +}
> --
> 2.29.2
>
diff mbox series

Patch

diff --git a/fs/cifs/cache.c b/fs/cifs/cache.c
index 0f2adecb94f2..488fe0ffc1ef 100644
--- a/fs/cifs/cache.c
+++ b/fs/cifs/cache.c
@@ -53,30 +53,6 @@  const struct fscache_cookie_def cifs_fscache_server_index_def = {
 	.type = FSCACHE_COOKIE_TYPE_INDEX,
 };
 
-char *extract_sharename(const char *treename)
-{
-	const char *src;
-	char *delim, *dst;
-	int len;
-
-	/* skip double chars at the beginning */
-	src = treename + 2;
-
-	/* share name is always preceded by '\\' now */
-	delim = strchr(src, '\\');
-	if (!delim)
-		return ERR_PTR(-EINVAL);
-	delim++;
-	len = strlen(delim);
-
-	/* caller has to free the memory */
-	dst = kstrndup(delim, len, GFP_KERNEL);
-	if (!dst)
-		return ERR_PTR(-ENOMEM);
-
-	return dst;
-}
-
 static enum
 fscache_checkaux cifs_fscache_super_check_aux(void *cookie_netfs_data,
 					      const void *data,
diff --git a/fs/cifs/cifsproto.h b/fs/cifs/cifsproto.h
index d716e81d86fa..5f997a01fb45 100644
--- a/fs/cifs/cifsproto.h
+++ b/fs/cifs/cifsproto.h
@@ -621,6 +621,7 @@  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);
+char *extract_sharename(const char *unc);
 
 #ifdef CONFIG_CIFS_DFS_UPCALL
 static inline int get_dfs_path(const unsigned int xid, struct cifs_ses *ses,
diff --git a/fs/cifs/fscache.c b/fs/cifs/fscache.c
index da688185403c..20d24af33ee2 100644
--- a/fs/cifs/fscache.c
+++ b/fs/cifs/fscache.c
@@ -22,6 +22,7 @@ 
 #include "cifsglob.h"
 #include "cifs_debug.h"
 #include "cifs_fs_sb.h"
+#include "cifsproto.h"
 
 /*
  * Key layout of CIFS server cache index object
diff --git a/fs/cifs/fscache.h b/fs/cifs/fscache.h
index 1091633d2adb..e811f2dd7619 100644
--- a/fs/cifs/fscache.h
+++ b/fs/cifs/fscache.h
@@ -57,7 +57,6 @@  extern const struct fscache_cookie_def cifs_fscache_inode_object_def;
 
 extern int cifs_fscache_register(void);
 extern void cifs_fscache_unregister(void);
-extern char *extract_sharename(const char *);
 
 /*
  * fscache.c
diff --git a/fs/cifs/misc.c b/fs/cifs/misc.c
index 3d5cc25c167f..f0a1c24751b2 100644
--- a/fs/cifs/misc.c
+++ b/fs/cifs/misc.c
@@ -1227,3 +1227,27 @@  char *extract_hostname(const char *unc)
 
 	return dst;
 }
+
+char *extract_sharename(const char *unc)
+{
+	const char *src;
+	char *delim, *dst;
+	int len;
+
+	/* skip double chars at the beginning */
+	src = unc + 2;
+
+	/* share name is always preceded by '\\' now */
+	delim = strchr(src, '\\');
+	if (!delim)
+		return ERR_PTR(-EINVAL);
+	delim++;
+	len = strlen(delim);
+
+	/* caller has to free the memory */
+	dst = kstrndup(delim, len, GFP_KERNEL);
+	if (!dst)
+		return ERR_PTR(-ENOMEM);
+
+	return dst;
+}