mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-01-09 14:50:19 +00:00
smb: client: introduce DFS_CACHE_TGT_LIST()
Add new helper which declares and initialises target list of a DFS referral rather having to do both separately. No functional changes. Signed-off-by: Paulo Alcantara (SUSE) <pc@manguebit.com> Signed-off-by: Steve French <stfrench@microsoft.com>
This commit is contained in:
parent
706a741595
commit
3fea12f3c6
@ -453,10 +453,10 @@ static int reconnect_target_unlocked(struct TCP_Server_Info *server, struct dfs_
|
||||
|
||||
static int reconnect_dfs_server(struct TCP_Server_Info *server)
|
||||
{
|
||||
int rc = 0;
|
||||
struct dfs_cache_tgt_list tl = DFS_CACHE_TGT_LIST_INIT(tl);
|
||||
struct dfs_cache_tgt_iterator *target_hint = NULL;
|
||||
DFS_CACHE_TGT_LIST(tl);
|
||||
int num_targets = 0;
|
||||
int rc = 0;
|
||||
|
||||
/*
|
||||
* Determine the number of dfs targets the referral path in @cifs_sb resolves to.
|
||||
|
@ -174,7 +174,7 @@ static int __dfs_mount_share(struct cifs_mount_ctx *mnt_ctx)
|
||||
}
|
||||
|
||||
do {
|
||||
struct dfs_cache_tgt_list tl = DFS_CACHE_TGT_LIST_INIT(tl);
|
||||
DFS_CACHE_TGT_LIST(tl);
|
||||
|
||||
rc = dfs_get_referral(mnt_ctx, ref_path + 1, NULL, &tl);
|
||||
if (rc) {
|
||||
@ -426,7 +426,7 @@ static int __tree_connect_dfs_target(const unsigned int xid, struct cifs_tcon *t
|
||||
/* Try to tree connect to all dfs targets */
|
||||
for (; tit; tit = dfs_cache_get_next_tgt(tl, tit)) {
|
||||
const char *target = dfs_cache_get_tgt_name(tit);
|
||||
struct dfs_cache_tgt_list ntl = DFS_CACHE_TGT_LIST_INIT(ntl);
|
||||
DFS_CACHE_TGT_LIST(ntl);
|
||||
|
||||
kfree(share);
|
||||
kfree(prefix);
|
||||
@ -520,7 +520,7 @@ int cifs_tree_connect(const unsigned int xid, struct cifs_tcon *tcon, const stru
|
||||
int rc;
|
||||
struct TCP_Server_Info *server = tcon->ses->server;
|
||||
const struct smb_version_operations *ops = server->ops;
|
||||
struct dfs_cache_tgt_list tl = DFS_CACHE_TGT_LIST_INIT(tl);
|
||||
DFS_CACHE_TGT_LIST(tl);
|
||||
struct cifs_sb_info *cifs_sb = NULL;
|
||||
struct super_block *sb = NULL;
|
||||
struct dfs_info3_param ref = {0};
|
||||
|
@ -1177,9 +1177,9 @@ static bool is_ses_good(struct cifs_ses *ses)
|
||||
/* Refresh dfs referral of tcon and mark it for reconnect if needed */
|
||||
static int __refresh_tcon(const char *path, struct cifs_ses *ses, bool force_refresh)
|
||||
{
|
||||
struct dfs_cache_tgt_list old_tl = DFS_CACHE_TGT_LIST_INIT(old_tl);
|
||||
struct dfs_cache_tgt_list new_tl = DFS_CACHE_TGT_LIST_INIT(new_tl);
|
||||
struct TCP_Server_Info *server = ses->server;
|
||||
DFS_CACHE_TGT_LIST(old_tl);
|
||||
DFS_CACHE_TGT_LIST(new_tl);
|
||||
bool needs_refresh = false;
|
||||
struct cache_entry *ce;
|
||||
unsigned int xid;
|
||||
|
@ -16,7 +16,11 @@
|
||||
extern struct workqueue_struct *dfscache_wq;
|
||||
extern atomic_t dfs_cache_ttl;
|
||||
|
||||
#define DFS_CACHE_TGT_LIST_INIT(var) { .tl_numtgts = 0, .tl_list = LIST_HEAD_INIT((var).tl_list), }
|
||||
#define DFS_CACHE_TGT_LIST_INIT(var) \
|
||||
{ .tl_numtgts = 0, .tl_list = LIST_HEAD_INIT((var).tl_list), }
|
||||
|
||||
#define DFS_CACHE_TGT_LIST(var) \
|
||||
struct dfs_cache_tgt_list var = DFS_CACHE_TGT_LIST_INIT(var)
|
||||
|
||||
struct dfs_cache_tgt_list {
|
||||
int tl_numtgts;
|
||||
|
Loading…
x
Reference in New Issue
Block a user