Message ID | 20201130180257.31787-3-scabrero@suse.de (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Witness protocol support for transparent failover | expand |
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 --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; +}
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(-)