Lines Matching defs:chmp

41 chfs_scan_make_vnode_cache(struct chfs_mount *chmp, ino_t vno)
45 KASSERT(mutex_owned(&chmp->chm_lock_vnocache));
48 vc = chfs_vnode_cache_get(chmp, vno);
54 if (vno > chmp->chm_max_vno) {
55 chmp->chm_max_vno = vno;
61 chfs_vnode_cache_add(chmp, vc);
102 chfs_scan_check_vnode(struct chfs_mount *chmp,
105 KASSERT(mutex_owned(&chmp->chm_lock_mountfields));
118 err = chfs_update_eb_dirty(chmp,
130 mutex_enter(&chmp->chm_lock_vnocache);
131 vc = chfs_vnode_cache_get(chmp, vno);
133 vc = chfs_scan_make_vnode_cache(chmp, vno);
135 mutex_exit(&chmp->chm_lock_vnocache);
150 chfs_add_vnode_ref_to_vc(chmp, vc, nref);
152 err = chfs_update_eb_dirty(chmp, cheb,
154 mutex_exit(&chmp->chm_lock_vnocache);
160 chfs_add_vnode_ref_to_vc(chmp, vc, nref);
162 mutex_exit(&chmp->chm_lock_vnocache);
165 mutex_enter(&chmp->chm_lock_sizes);
166 chfs_change_size_free(chmp, cheb, -le32toh(vnode->length));
167 chfs_change_size_used(chmp, cheb, le32toh(vnode->length));
168 mutex_exit(&chmp->chm_lock_sizes);
170 KASSERT(cheb->used_size <= chmp->chm_ebh->eb_size);
172 KASSERT(cheb->used_size + cheb->free_size + cheb->dirty_size + cheb->unchecked_size + cheb->wasted_size == chmp->chm_ebh->eb_size);
179 chfs_scan_mark_dirent_obsolete(struct chfs_mount *chmp,
186 cheb = &chmp->chm_blocks[fd->nref->nref_lnr];
203 cheb->unchecked_size + cheb->wasted_size == chmp->chm_ebh->eb_size);
210 chfs_add_fd_to_list(struct chfs_mount *chmp,
213 KASSERT(mutex_owned(&chmp->chm_lock_mountfields));
226 cheb = &chmp->chm_blocks[new->nref->nref_lnr];
228 mutex_enter(&chmp->chm_lock_sizes);
239 chfs_change_size_free(chmp, cheb, -size);
240 chfs_change_size_used(chmp, cheb, size);
245 chfs_scan_mark_dirent_obsolete(chmp, pvc, fd);
246 oldcheb = &chmp->chm_blocks[fd->nref->nref_lnr];
247 chfs_change_size_used(chmp, oldcheb, -size);
248 chfs_change_size_dirty(chmp, oldcheb, size);
253 chfs_scan_mark_dirent_obsolete(chmp, pvc, new);
254 chfs_change_size_free(chmp, cheb, -size);
255 chfs_change_size_dirty(chmp, cheb, size);
258 mutex_exit(&chmp->chm_lock_sizes);
267 chfs_change_size_free(chmp, cheb, -size);
268 chfs_change_size_used(chmp, cheb, size);
269 mutex_exit(&chmp->chm_lock_sizes);
271 KASSERT(cheb->used_size <= chmp->chm_ebh->eb_size);
273 KASSERT(cheb->used_size + cheb->free_size + cheb->dirty_size + cheb->unchecked_size + cheb->wasted_size == chmp->chm_ebh->eb_size);
278 chfs_scan_check_dirent_node(struct chfs_mount *chmp,
290 err = chfs_update_eb_dirty(chmp, cheb, le32toh(dirent->length));
318 err = chfs_update_eb_dirty(chmp, cheb, le32toh(dirent->length));
325 mutex_enter(&chmp->chm_lock_vnocache);
326 parentvc = chfs_scan_make_vnode_cache(chmp, le64toh(dirent->pvno));
329 mutex_exit(&chmp->chm_lock_vnocache);
336 chfs_add_node_to_list(chmp, parentvc, fd->nref, &parentvc->dirents);
337 mutex_exit(&chmp->chm_lock_vnocache);
344 chfs_add_fd_to_list(chmp, fd, parentvc);
351 chfs_scan_check_data_node(struct chfs_mount *chmp,
354 KASSERT(mutex_owned(&chmp->chm_lock_mountfields));
364 err = chfs_update_eb_dirty(chmp, cheb, le32toh(dnode->length));
382 mutex_enter(&chmp->chm_lock_vnocache);
383 vc = chfs_vnode_cache_get(chmp, vno);
385 vc = chfs_scan_make_vnode_cache(chmp, vno);
387 mutex_exit(&chmp->chm_lock_vnocache);
391 chfs_add_node_to_list(chmp, vc, nref, &vc->dnode);
392 mutex_exit(&chmp->chm_lock_vnocache);
394 dbg("chmpfree: %u, chebfree: %u, dnode: %u\n", chmp->chm_free_size, cheb->free_size, dnode->length);
397 mutex_enter(&chmp->chm_lock_sizes);
398 chfs_change_size_free(chmp, cheb, -dnode->length);
399 chfs_change_size_unchecked(chmp, cheb, dnode->length);
400 mutex_exit(&chmp->chm_lock_sizes);
406 chfs_scan_classify_cheb(struct chfs_mount *chmp,
409 if (cheb->free_size == chmp->chm_ebh->eb_size)
428 chfs_scan_eraseblock(struct chfs_mount *chmp,
441 dbg("scanned physical block: %d\n", chmp->chm_ebh->lmap[lnr]);
444 while((ofs + CHFS_NODE_HDR_SIZE) < chmp->chm_ebh->eb_size) {
446 err = chfs_read_leb(chmp,
464 if (read_free >= MAX_READ_FREE(chmp)) {
467 return chfs_scan_classify_cheb(chmp, cheb);
472 chfs_update_eb_dirty(chmp, cheb, read_free);
481 err = chfs_update_eb_dirty(chmp, cheb, 4);
489 if (ofs > chmp->chm_ebh->eb_size) {
499 err = chfs_read_leb(chmp,
512 err = chfs_scan_check_vnode(chmp,
523 err = chfs_read_leb(chmp,
538 err = chfs_scan_check_dirent_node(chmp,
548 err = chfs_read_leb(chmp,
561 err = chfs_scan_check_data_node(chmp,
574 err = chfs_update_eb_dirty(chmp, cheb,
582 err = chfs_update_eb_dirty(chmp, cheb,
593 cheb->unchecked_size + cheb->wasted_size == chmp->chm_ebh->eb_size);
595 err = chfs_scan_classify_cheb(chmp, cheb);