Home | History | Annotate | Download | only in chfs

Lines Matching defs:nref

308 	struct chfs_node_ref *nref;
322 nref = chvc->v;
323 chfs_remove_and_obsolete(chmp, chvc, nref, &chvc->v);
425 struct chfs_node_ref *nref;
545 nref = eb->gc_node;
550 while(CHFS_REF_OBSOLETE(nref)) {
552 if (nref == chmp->chm_blocks[nref->nref_lnr].last_node) {
556 nref = node_next(nref);
557 if (!nref) {
558 eb->gc_node = nref;
560 panic("CHFS BUG - nref is NULL)\n");
565 eb->gc_node = nref;
566 KASSERT(nref->nref_lnr == chmp->chm_gcblock->lnr);
569 if (!nref->nref_next) {
572 if (CHFS_REF_FLAGS(nref) == CHFS_PRISTINE_NODE_MASK) {
573 chfs_gcollect_pristine(chmp, eb, NULL, nref);
575 chfs_mark_node_obsolete(chmp, nref);
584 dbg_gc("nref lnr: %u - offset: %u\n", nref->nref_lnr, nref->nref_offset);
585 vc = chfs_nref_to_vc(nref);
591 if (CHFS_REF_FLAGS(nref) == CHFS_PRISTINE_NODE_MASK) {
620 ret = chfs_gcollect_pristine(chmp, eb, NULL, nref);
642 chfs_gcollect_live(chmp, eb, nref, ip);
700 struct chfs_vnode_cache *chvc, struct chfs_node_ref *nref)
709 size_t totlen = chfs_nref_len(chmp, cheb, nref);
717 ofs = CHFS_GET_OFS(nref->nref_offset);
720 ret = chfs_read_leb(chmp, nref->nref_lnr, data, ofs, totlen, &retlen);
848 struct chfs_eraseblock *cheb, struct chfs_node_ref *nref,
865 if (CHFS_REF_OBSOLETE(nref)) {
871 if (ip->chvc->v == nref) {
880 if (frag->node && frag->node->nref == nref) {
892 if (CHFS_REF_FLAGS(nref) == CHFS_PRISTINE_NODE_MASK) {
894 cheb, ip->chvc, nref);
896 frag->node->nref = ip->chvc->v;
909 if (fd->nref == nref) {
922 dbg_gc("Nref at leb #%u offset 0x%08x wasn't in node list"
924 nref->nref_lnr, CHFS_GET_OFS(nref->nref_offset),
926 if (CHFS_REF_OBSOLETE(nref)) {
973 chfs_remove_and_obsolete(chmp, parent->chvc, fd->nref,
992 struct chfs_node_ref *nref;
1004 nref_len = chfs_nref_len(chmp, cheb, fd->nref);
1009 for (nref = parent->chvc->dirents;
1010 nref != (void*)parent->chvc;
1011 nref = nref->nref_next) {
1013 if (!CHFS_REF_OBSOLETE(nref))
1017 if (chfs_nref_len(chmp, NULL, nref) != nref_len)
1020 if (CHFS_GET_OFS(nref->nref_offset) ==
1021 CHFS_GET_OFS(fd->nref->nref_offset)) {
1027 nref->nref_lnr, (void*)&chfdn, CHFS_GET_OFS(nref->nref_offset),
1060 chfs_remove_and_obsolete(chmp, parent->chvc, fd->nref,
1079 struct chfs_node_ref *nref;
1091 KASSERT(orig_cheb->lnr == fn->nref->nref_lnr);
1092 totlen = chfs_nref_len(chmp, orig_cheb, fn->nref);
1096 ret = chfs_read_leb(chmp, fn->nref->nref_lnr, data, fn->nref->nref_offset,
1113 nref = chfs_alloc_node_ref(chmp->chm_nextblock);
1114 if (!nref) {
1121 nref->nref_offset = chmp->chm_ebh->eb_size - chmp->chm_nextblock->free_size;
1122 KASSERT(nref->nref_offset % 4 == 0);
1126 ret = chfs_write_wbuf(chmp, &vec, 1, nref->nref_offset, &retlen);
1145 dbg_gc("new nref lnr: %u - offset: %u\n", nref->nref_lnr, nref->nref_offset);
1147 chfs_change_size_used(chmp, &chmp->chm_blocks[nref->nref_lnr], totlen);
1149 KASSERT(chmp->chm_blocks[nref->nref_lnr].used_size <= chmp->chm_ebh->eb_size);
1153 newfn->nref = nref;
1160 chfs_remove_frags_of_node(chmp, &ip->fragtree, fn->nref);
1161 chfs_remove_and_obsolete(chmp, ip->chvc, fn->nref, &ip->chvc->dnode);
1163 /* Add the new nref to inode. */
1166 ip->chvc, newfn->nref, &ip->chvc->dnode);