Lines Matching defs:chmp
120 struct chfs_mount *chmp;
192 chmp = ump->um_chfs;
195 chmp->chm_fsmp = mp;
215 struct chfs_mount* chmp;
253 chmp = ump->um_chfs;
256 chmp->chm_ebh = kmem_alloc(sizeof(struct chfs_ebh), KM_SLEEP);
259 err = ebh_open(chmp->chm_ebh, devvp->v_rdev);
268 chmp->chm_gbl_version = 0;
269 chmp->chm_vnocache_hash = chfs_vnocache_hash_init();
271 chmp->chm_blocks = kmem_zalloc(chmp->chm_ebh->peb_nr *
275 mutex_init(&chmp->chm_lock_mountfields, MUTEX_DEFAULT, IPL_NONE);
276 mutex_init(&chmp->chm_lock_sizes, MUTEX_DEFAULT, IPL_NONE);
277 mutex_init(&chmp->chm_lock_vnocache, MUTEX_DEFAULT, IPL_NONE);
280 chmp->chm_fs_bmask = -4096;
281 chmp->chm_fs_bsize = 4096;
282 chmp->chm_fs_qbmask = 4095;
283 chmp->chm_fs_bshift = 12;
284 chmp->chm_fs_fmask = -2048;
285 chmp->chm_fs_qfmask = 2047;
288 chmp->chm_wbuf_pagesize = chmp->chm_ebh->flash_if->page_size;
289 dbg("wbuf size: %zu\n", chmp->chm_wbuf_pagesize);
290 chmp->chm_wbuf = kmem_alloc(chmp->chm_wbuf_pagesize, KM_SLEEP);
291 rw_init(&chmp->chm_lock_wbuf);
294 TAILQ_INIT(&chmp->chm_free_queue);
295 TAILQ_INIT(&chmp->chm_clean_queue);
296 TAILQ_INIT(&chmp->chm_dirty_queue);
297 TAILQ_INIT(&chmp->chm_very_dirty_queue);
298 TAILQ_INIT(&chmp->chm_erasable_pending_wbuf_queue);
299 TAILQ_INIT(&chmp->chm_erase_pending_queue);
302 chfs_calc_trigger_levels(chmp);
305 chmp->chm_nr_free_blocks = 0;
306 chmp->chm_nr_erasable_blocks = 0;
307 chmp->chm_max_vno = 2;
308 chmp->chm_checked_vno = 2;
309 chmp->chm_unchecked_size = 0;
310 chmp->chm_used_size = 0;
311 chmp->chm_dirty_size = 0;
312 chmp->chm_wasted_size = 0;
313 chmp->chm_free_size = chmp->chm_ebh->eb_size * chmp->chm_ebh->peb_nr;
316 err = chfs_build_filesystem(chmp);
349 chfs_gc_thread_start(chmp);
350 mutex_enter(&chmp->chm_lock_mountfields);
351 chfs_gc_trigger(chmp);
352 mutex_exit(&chmp->chm_lock_mountfields);
358 KASSERT(TAILQ_EMPTY(&chmp->chm_erase_pending_queue));
359 KASSERT(TAILQ_EMPTY(&chmp->chm_erasable_pending_wbuf_queue));
360 KASSERT(TAILQ_EMPTY(&chmp->chm_very_dirty_queue));
361 KASSERT(TAILQ_EMPTY(&chmp->chm_dirty_queue));
362 KASSERT(TAILQ_EMPTY(&chmp->chm_clean_queue));
363 KASSERT(TAILQ_EMPTY(&chmp->chm_free_queue));
364 rw_destroy(&chmp->chm_lock_wbuf);
365 kmem_free(chmp->chm_wbuf, chmp->chm_wbuf_pagesize);
366 mutex_destroy(&chmp->chm_lock_vnocache);
367 mutex_destroy(&chmp->chm_lock_sizes);
368 mutex_destroy(&chmp->chm_lock_mountfields);
369 kmem_free(chmp->chm_blocks, chmp->chm_ebh->peb_nr *
371 chfs_vnocache_hash_destroy(chmp->chm_vnocache_hash);
372 ebh_close(chmp->chm_ebh);
375 kmem_free(chmp->chm_ebh, sizeof(struct chfs_ebh));
377 kmem_free(chmp, sizeof(struct chfs_mount));
392 struct chfs_mount *chmp;
400 chmp = ump->um_chfs;
403 chfs_gc_thread_stop(chmp);
408 if (chmp->chm_wbuf_len) {
409 mutex_enter(&chmp->chm_lock_mountfields);
410 chfs_flush_pending_wbuf(chmp);
411 mutex_exit(&chmp->chm_lock_mountfields);
415 for (i = 0; i < chmp->chm_ebh->peb_nr; i++) {
416 chfs_free_node_refs(&chmp->chm_blocks[i]);
420 chfs_vnocache_hash_destroy(chmp->chm_vnocache_hash);
423 ebh_close(chmp->chm_ebh);
426 rw_destroy(&chmp->chm_lock_wbuf);
427 mutex_destroy(&chmp->chm_lock_vnocache);
428 mutex_destroy(&chmp->chm_lock_sizes);
429 mutex_destroy(&chmp->chm_lock_mountfields);
471 struct chfs_mount *chmp;
495 ip->chmp = chmp = ump->um_chfs;
519 mutex_enter(&chmp->chm_lock_vnocache);
520 chvc = chfs_vnode_cache_get(chmp, ino);
521 mutex_exit(&chmp->chm_lock_vnocache);
527 mutex_enter(&chmp->chm_lock_vnocache);
533 chfs_vnode_cache_add(chmp, chvc);
534 mutex_exit(&chmp->chm_lock_vnocache);
549 mutex_enter(&chmp->chm_lock_mountfields);
569 error = chfs_read_inode(chmp, ip);
575 error = chfs_read_inode_internal(chmp, ip);
586 chfs_read_data(chmp, vp, bp);
603 error = chfs_read_inode_internal(chmp, ip);
613 chfs_read_data(chmp, vp, bp);
632 mutex_exit(&chmp->chm_lock_mountfields);
706 struct chfs_mount *chmp;
711 chmp = ump->um_chfs;
714 sbp->f_bsize = chmp->chm_ebh->eb_size;
715 sbp->f_frsize = chmp->chm_ebh->eb_size;
716 sbp->f_iosize = chmp->chm_ebh->eb_size;
718 sbp->f_blocks = chmp->chm_ebh->peb_nr;
720 sbp->f_bavail = chmp->chm_nr_free_blocks - chmp->chm_resv_blocks_write;
722 sbp->f_bfree = chmp->chm_nr_free_blocks;
723 sbp->f_bresvd = chmp->chm_resv_blocks_write;