Lines Matching full:ref
30 struct dfs_ref *ref; member
36 #define ref_walk_cur(w) ((w)->ref)
63 static inline void __ref_walk_free(struct dfs_ref *ref) in __ref_walk_free() argument
65 kfree(ref->path); in __ref_walk_free()
66 kfree(ref->full_path); in __ref_walk_free()
67 dfs_cache_free_tgts(&ref->tl); in __ref_walk_free()
68 if (ref->ses) in __ref_walk_free()
69 cifs_put_smb_ses(ref->ses); in __ref_walk_free()
70 memset(ref, 0, sizeof(*ref)); in __ref_walk_free()
75 struct dfs_ref *ref; in ref_walk_free() local
80 for (ref = ref_walk_start(rw); ref <= ref_walk_end(rw); ref++) in ref_walk_free()
81 __ref_walk_free(ref); in ref_walk_free()
87 struct dfs_ref *ref = ref_walk_cur(rw) + 1; in ref_walk_advance() local
89 if (ref > ref_walk_end(rw)) in ref_walk_advance()
91 __ref_walk_free(ref); in ref_walk_advance()
92 ref_walk_cur(rw) = ref; in ref_walk_advance()
99 struct dfs_ref *ref = ref_walk_cur(rw); in ref_walk_next_tgt() local
102 if (IS_ERR(ref->tit)) in ref_walk_next_tgt()
105 if (!ref->tit) in ref_walk_next_tgt()
106 tit = dfs_cache_get_tgt_iterator(&ref->tl); in ref_walk_next_tgt()
108 tit = dfs_cache_get_next_tgt(&ref->tl, ref->tit); in ref_walk_next_tgt()
111 ref->tit = ERR_PTR(-ENOENT); in ref_walk_next_tgt()
114 ref->tit = tit; in ref_walk_next_tgt()
115 return ref->tit; in ref_walk_next_tgt()
135 struct dfs_ref *ref = ref_walk_start(rw); in ref_walk_set_tcon() local
137 for (; ref <= ref_walk_cur(rw); ref++) { in ref_walk_set_tcon()
138 if (WARN_ON_ONCE(!ref->ses)) in ref_walk_set_tcon()
140 list_add(&ref->ses->dlist, &tcon->dfs_ses_list); in ref_walk_set_tcon()
141 ref->ses = NULL; in ref_walk_set_tcon()
147 struct dfs_ref *ref = ref_walk_cur(rw) - 1; in ref_walk_mark_end() local
149 WARN_ON_ONCE(ref < ref_walk_start(rw)); in ref_walk_mark_end()
150 dfs_cache_noreq_update_tgthint(ref->path + 1, ref->tit); in ref_walk_mark_end()
151 ref->tit = ERR_PTR(-ENOENT); /* end marker */ in ref_walk_mark_end()
154 int dfs_parse_target_referral(const char *full_path, const struct dfs_info3_param *ref,