Skip to content

Commit

Permalink
cifs: Make extract_sharename function public
Browse files Browse the repository at this point in the history
Move the function to misc.c

Signed-off-by: Samuel Cabrero <scabrero@suse.de>
Reviewed-by: Aurelien Aptel <aaptel@suse.com>
Signed-off-by: Steve French <stfrench@microsoft.com>
  • Loading branch information
scabrero authored and Steve French committed Dec 14, 2020
1 parent a87e672 commit e73a42e
Show file tree
Hide file tree
Showing 5 changed files with 26 additions and 25 deletions.
24 changes: 0 additions & 24 deletions fs/cifs/cache.c
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down
1 change: 1 addition & 0 deletions fs/cifs/cifsproto.h
Original file line number Diff line number Diff line change
Expand Up @@ -618,6 +618,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,
Expand Down
1 change: 1 addition & 0 deletions fs/cifs/fscache.c
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
1 change: 0 additions & 1 deletion fs/cifs/fscache.h
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
24 changes: 24 additions & 0 deletions fs/cifs/misc.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}

0 comments on commit e73a42e

Please sign in to comment.