Home | History | Annotate | Download | only in chfs

Lines Matching defs:nref

191 	struct chfs_node_ref *nref;
192 nref = pool_cache_get(chfs_nrefs_cache, PR_WAITOK);
195 nref[i].nref_lnr = REF_EMPTY_NODE;
196 nref[i].nref_next = NULL;
199 nref[i].nref_lnr = REF_LINK_TO_NEXT;
200 nref[i].nref_next = NULL;
202 return nref;
207 chfs_free_refblock(struct chfs_node_ref *nref)
209 pool_cache_put(chfs_nrefs_cache, nref);
221 struct chfs_node_ref *nref, *new, *old __diagused;
223 nref = cheb->last_node;
225 if (!nref) {
226 /* There haven't been any nref allocated for this block yet */
227 nref = chfs_alloc_refblock();
229 cheb->first_node = nref;
230 cheb->last_node = nref;
231 nref->nref_lnr = cheb->lnr;
232 KASSERT(cheb->lnr == nref->nref_lnr);
234 return nref;
237 nref++;
238 if (nref->nref_lnr == REF_LINK_TO_NEXT) {
241 nref->nref_next = new;
242 nref = new;
245 cheb->last_node = nref;
246 nref->nref_lnr = cheb->lnr;
248 KASSERT(old->nref_lnr == nref->nref_lnr &&
249 nref->nref_lnr == cheb->lnr);
251 return nref;
258 struct chfs_node_ref *nref, *block;
260 block = nref = cheb->first_node;
262 while (nref) {
263 if (nref->nref_lnr == REF_LINK_TO_NEXT) {
264 nref = nref->nref_next;
266 block = nref;
269 nref++;
300 ret->nref = NULL;