Lines Matching defs:rw
47 struct dfs_ref_walk *rw;
49 rw = kmalloc(sizeof(*rw), GFP_KERNEL);
50 if (!rw)
52 return rw;
55 static inline void ref_walk_init(struct dfs_ref_walk *rw,
58 memset(rw, 0, sizeof(*rw));
59 rw->mnt_ctx = mnt_ctx;
60 ref_walk_cur(rw) = ref_walk_start(rw);
73 static inline void ref_walk_free(struct dfs_ref_walk *rw)
77 if (!rw)
80 for (ref = ref_walk_start(rw); ref <= ref_walk_end(rw); ref++)
82 kfree(rw);
85 static inline int ref_walk_advance(struct dfs_ref_walk *rw)
87 struct dfs_ref *ref = ref_walk_cur(rw) + 1;
89 if (ref > ref_walk_end(rw))
92 ref_walk_cur(rw) = ref;
97 ref_walk_next_tgt(struct dfs_ref_walk *rw)
99 struct dfs_ref *ref = ref_walk_cur(rw);
118 static inline int ref_walk_get_tgt(struct dfs_ref_walk *rw,
122 return dfs_cache_get_tgt_referral(ref_walk_path(rw) + 1,
123 ref_walk_tit(rw), tgt);
126 static inline void ref_walk_set_tgt_hint(struct dfs_ref_walk *rw)
128 dfs_cache_noreq_update_tgthint(ref_walk_path(rw) + 1,
129 ref_walk_tit(rw));
132 static inline void ref_walk_set_tcon(struct dfs_ref_walk *rw,
135 struct dfs_ref *ref = ref_walk_start(rw);
137 for (; ref <= ref_walk_cur(rw); ref++) {
145 static inline void ref_walk_mark_end(struct dfs_ref_walk *rw)
147 struct dfs_ref *ref = ref_walk_cur(rw) - 1;
149 WARN_ON_ONCE(ref < ref_walk_start(rw));