Lines Matching full:rw
89 struct dfs_ref_walk *rw, in parse_dfs_target() argument
93 const char *fpath = ref_walk_fpath(rw) + 1; in parse_dfs_target()
95 rc = ref_walk_get_tgt(rw, tgt); in parse_dfs_target()
101 static int setup_dfs_ref(struct dfs_info3_param *tgt, struct dfs_ref_walk *rw) in setup_dfs_ref() argument
103 struct cifs_sb_info *cifs_sb = rw->mnt_ctx->cifs_sb; in setup_dfs_ref()
104 struct smb3_fs_context *ctx = rw->mnt_ctx->fs_ctx; in setup_dfs_ref()
108 set_root_smb_session(rw->mnt_ctx); in setup_dfs_ref()
109 ref_walk_ses(rw) = ctx->dfs_root_ses; in setup_dfs_ref()
125 ref_walk_path(rw) = ref_path; in setup_dfs_ref()
126 ref_walk_fpath(rw) = full_path; in setup_dfs_ref()
128 return dfs_get_referral(rw->mnt_ctx, in setup_dfs_ref()
129 ref_walk_path(rw) + 1, in setup_dfs_ref()
130 ref_walk_tl(rw)); in setup_dfs_ref()
133 static int __dfs_referral_walk(struct dfs_ref_walk *rw) in __dfs_referral_walk() argument
135 struct smb3_fs_context *ctx = rw->mnt_ctx->fs_ctx; in __dfs_referral_walk()
136 struct cifs_mount_ctx *mnt_ctx = rw->mnt_ctx; in __dfs_referral_walk()
142 ctx->dfs_root_ses = ref_walk_ses(rw); in __dfs_referral_walk()
143 while (ref_walk_next_tgt(rw)) { in __dfs_referral_walk()
144 rc = parse_dfs_target(ctx, rw, &tgt); in __dfs_referral_walk()
149 rc = get_session(mnt_ctx, ref_walk_path(rw)); in __dfs_referral_walk()
161 ref_walk_set_tgt_hint(rw); in __dfs_referral_walk()
166 rc = ref_walk_advance(rw); in __dfs_referral_walk()
168 rc = setup_dfs_ref(&tgt, rw); in __dfs_referral_walk()
171 ref_walk_mark_end(rw); in __dfs_referral_walk()
176 } while (rc && ref_walk_descend(rw)); in __dfs_referral_walk()
183 struct dfs_ref_walk **rw) in dfs_referral_walk() argument
187 *rw = ref_walk_alloc(); in dfs_referral_walk()
188 if (IS_ERR(*rw)) { in dfs_referral_walk()
189 rc = PTR_ERR(*rw); in dfs_referral_walk()
190 *rw = NULL; in dfs_referral_walk()
194 ref_walk_init(*rw, mnt_ctx); in dfs_referral_walk()
195 rc = setup_dfs_ref(NULL, *rw); in dfs_referral_walk()
197 rc = __dfs_referral_walk(*rw); in dfs_referral_walk()
205 struct dfs_ref_walk *rw = NULL; in __dfs_mount_share() local
214 rc = dfs_referral_walk(mnt_ctx, &rw); in __dfs_mount_share()
234 ref_walk_set_tcon(rw, tcon); in __dfs_mount_share()
241 ref_walk_free(rw); in __dfs_mount_share()