Lines Matching defs:chmp
42 chfs_calc_trigger_levels(struct chfs_mount *chmp)
46 chmp->chm_resv_blocks_deletion = 2;
48 size = chmp->chm_ebh->flash_size / 50; /* 2% of flash size */
49 size += chmp->chm_ebh->peb_nr * 100;
50 size += chmp->chm_ebh->eb_size - 1;
52 chmp->chm_resv_blocks_write =
53 chmp->chm_resv_blocks_deletion + (size / chmp->chm_ebh->eb_size);
54 chmp->chm_resv_blocks_gctrigger = chmp->chm_resv_blocks_write + 1;
55 chmp->chm_resv_blocks_gcmerge = chmp->chm_resv_blocks_deletion + 1;
56 chmp->chm_vdirty_blocks_gctrigger = chmp->chm_resv_blocks_gctrigger * 10;
58 chmp->chm_nospc_dirty =
59 chmp->chm_ebh->eb_size + (chmp->chm_ebh->flash_size / 100);
69 chfs_build_set_vnodecache_nlink(struct chfs_mount *chmp,
80 mutex_enter(&chmp->chm_lock_vnocache);
81 child_vc = chfs_vnode_cache_get(chmp, fd->vno);
82 mutex_exit(&chmp->chm_lock_vnocache);
84 chfs_mark_node_obsolete(chmp, fd->nref);
110 chfs_build_remove_unlinked_vnode(struct chfs_mount *chmp,
120 KASSERT(mutex_owned(&chmp->chm_lock_mountfields));
126 chfs_mark_node_obsolete(chmp, nref);
135 chfs_mark_node_obsolete(chmp, nref);
155 mutex_enter(&chmp->chm_lock_vnocache);
156 child_vc = chfs_vnode_cache_get(chmp, fd->vno);
157 mutex_exit(&chmp->chm_lock_vnocache);
183 chfs_mark_node_obsolete(chmp, nref);
188 mutex_enter(&chmp->chm_lock_vnocache);
191 mutex_exit(&chmp->chm_lock_vnocache);
208 chfs_build_filesystem(struct chfs_mount *chmp)
219 mutex_enter(&chmp->chm_lock_mountfields);
222 chmp->chm_flags |= CHFS_MP_FLAG_SCANNING;
223 for (i = 0; i < chmp->chm_ebh->peb_nr; i++) {
224 chmp->chm_blocks[i].lnr = i;
225 chmp->chm_blocks[i].free_size = chmp->chm_ebh->eb_size;
227 if (chmp->chm_ebh->lmap[i] < 0) {
228 TAILQ_INSERT_TAIL(&chmp->chm_free_queue,
229 &chmp->chm_blocks[i], queue);
230 chmp->chm_nr_free_blocks++;
234 err = chfs_scan_eraseblock(chmp, &chmp->chm_blocks[i]);
237 chmp->chm_nr_free_blocks++;
238 TAILQ_INSERT_TAIL(&chmp->chm_free_queue,
239 &chmp->chm_blocks[i], queue);
242 TAILQ_INSERT_TAIL(&chmp->chm_clean_queue,
243 &chmp->chm_blocks[i], queue);
246 if (chmp->chm_blocks[i].free_size > chmp->chm_wbuf_pagesize &&
247 (!chmp->chm_nextblock ||
248 chmp->chm_blocks[i].free_size >
249 chmp->chm_nextblock->free_size)) {
252 if (chmp->chm_nextblock) {
253 err = chfs_close_eraseblock(chmp,
254 chmp->chm_nextblock);
256 mutex_exit(&chmp->chm_lock_mountfields);
260 chmp->chm_nextblock = &chmp->chm_blocks[i];
264 err = chfs_close_eraseblock(chmp,
265 &chmp->chm_blocks[i]);
267 mutex_exit(&chmp->chm_lock_mountfields);
277 TAILQ_INSERT_TAIL(&chmp->chm_erase_pending_queue,
278 &chmp->chm_blocks[i], queue);
279 chmp->chm_nr_erasable_blocks++;
287 chmp->chm_flags &= ~CHFS_MP_FLAG_SCANNING;
296 chmp->chm_flags |= CHFS_MP_FLAG_BUILDING;
298 vc = chmp->chm_vnocache_hash[i];
302 chfs_build_set_vnodecache_nlink(chmp, vc);
309 vc = chmp->chm_vnocache_hash[i];
316 chfs_build_remove_unlinked_vnode(chmp,
324 mutex_enter(&chmp->chm_lock_vnocache);
325 vc = chfs_vnode_cache_get(chmp, fd->vno);
326 mutex_exit(&chmp->chm_lock_vnocache);
328 chfs_build_remove_unlinked_vnode(chmp,
334 chmp->chm_flags &= ~CHFS_MP_FLAG_BUILDING;
338 vc = chmp->chm_vnocache_hash[i];
347 mutex_enter(&chmp->chm_lock_vnocache);
348 notregvc = chfs_vnode_cache_get(chmp, fd->vno);
350 mutex_exit(&chmp->chm_lock_vnocache);
359 /* Set up chmp->chm_wbuf_ofs for the first write */
360 if (chmp->chm_nextblock) {
361 dbg("free_size: %d\n", chmp->chm_nextblock->free_size);
362 chmp->chm_wbuf_ofs = chmp->chm_ebh->eb_size -
363 chmp->chm_nextblock->free_size;
365 chmp->chm_wbuf_ofs = 0xffffffff;
367 mutex_exit(&chmp->chm_lock_mountfields);