Lines Matching defs:chmp
45 chfs_write_flash_vnode(struct chfs_mount *chmp,
48 KASSERT(mutex_owned(&chmp->chm_lock_mountfields));
89 err = chfs_reserve_space_gc(chmp, CHFS_PAD(size));
93 chfs_gc_trigger(chmp);
95 err = chfs_reserve_space_normal(chmp,
98 err = chfs_reserve_space_normal(chmp,
105 nref = chfs_alloc_node_ref(chmp->chm_nextblock);
111 mutex_enter(&chmp->chm_lock_sizes);
114 nref->nref_offset = chmp->chm_ebh->eb_size - chmp->chm_nextblock->free_size;
115 chfs_change_size_free(chmp, chmp->chm_nextblock, -CHFS_PAD(size));
120 err = chfs_write_wbuf(chmp, &vec, 1, nref->nref_offset, &retlen);
126 chfs_change_size_dirty(chmp,
127 chmp->chm_nextblock, CHFS_PAD(size));
130 mutex_exit(&chmp->chm_lock_sizes);
136 mutex_exit(&chmp->chm_lock_sizes);
141 chfs_change_size_used(chmp,
142 &chmp->chm_blocks[nref->nref_lnr], CHFS_PAD(size));
143 mutex_exit(&chmp->chm_lock_sizes);
146 mutex_enter(&chmp->chm_lock_vnocache);
147 chfs_add_vnode_ref_to_vc(chmp, chvc, nref);
148 mutex_exit(&chmp->chm_lock_vnocache);
149 KASSERT(chmp->chm_blocks[nref->nref_lnr].used_size <= chmp->chm_ebh->eb_size);
157 chfs_write_flash_dirent(struct chfs_mount *chmp, struct chfs_inode *pdir,
161 KASSERT(mutex_owned(&chmp->chm_lock_mountfields));
208 err = chfs_reserve_space_gc(chmp, CHFS_PAD(size));
212 chfs_gc_trigger(chmp);
214 err = chfs_reserve_space_normal(chmp,
217 err = chfs_reserve_space_normal(chmp,
224 nref = chfs_alloc_node_ref(chmp->chm_nextblock);
230 mutex_enter(&chmp->chm_lock_sizes);
232 nref->nref_offset = chmp->chm_ebh->eb_size - chmp->chm_nextblock->free_size;
233 chfs_change_size_free(chmp, chmp->chm_nextblock, -CHFS_PAD(size));
236 err = chfs_write_wbuf(chmp, vec, 2, nref->nref_offset, &retlen);
242 chfs_change_size_dirty(chmp,
243 chmp->chm_nextblock, CHFS_PAD(size));
246 mutex_exit(&chmp->chm_lock_sizes);
252 mutex_exit(&chmp->chm_lock_sizes);
258 chfs_change_size_used(chmp,
259 &chmp->chm_blocks[nref->nref_lnr], CHFS_PAD(size));
260 mutex_exit(&chmp->chm_lock_sizes);
261 KASSERT(chmp->chm_blocks[nref->nref_lnr].used_size <= chmp->chm_ebh->eb_size);
266 mutex_enter(&chmp->chm_lock_vnocache);
267 chfs_add_node_to_list(chmp,
269 mutex_exit(&chmp->chm_lock_vnocache);
278 chfs_write_flash_dnode(struct chfs_mount *chmp, struct vnode *vp,
281 KASSERT(mutex_owned(&chmp->chm_lock_mountfields));
341 chfs_gc_trigger(chmp);
342 err = chfs_reserve_space_normal(chmp,
348 nref = chfs_alloc_node_ref(chmp->chm_nextblock);
355 chmp->chm_ebh->eb_size - chmp->chm_nextblock->free_size;
357 KASSERT(nref->nref_offset < chmp->chm_ebh->eb_size);
359 mutex_enter(&chmp->chm_lock_sizes);
361 chfs_change_size_free(chmp,
362 chmp->chm_nextblock, -CHFS_PAD(size));
365 err = chfs_write_wbuf(chmp, vec, 2, nref->nref_offset, &retlen);
371 chfs_change_size_dirty(chmp,
372 chmp->chm_nextblock, CHFS_PAD(size));
375 mutex_exit(&chmp->chm_lock_sizes);
381 mutex_exit(&chmp->chm_lock_sizes);
386 chfs_change_size_used(chmp,
387 &chmp->chm_blocks[nref->nref_lnr], CHFS_PAD(size));
388 mutex_exit(&chmp->chm_lock_sizes);
390 mutex_enter(&chmp->chm_lock_vnocache);
392 chfs_remove_frags_of_node(chmp, &ip->fragtree, fd->nref);
393 chfs_remove_and_obsolete(chmp, ip->chvc, fd->nref, &ip->chvc->dnode);
397 KASSERT(chmp->chm_blocks[nref->nref_lnr].used_size <= chmp->chm_ebh->eb_size);
399 chfs_add_node_to_list(chmp, ip->chvc, nref, &ip->chvc->dnode);
400 mutex_exit(&chmp->chm_lock_vnocache);
420 struct chfs_mount *chmp = ump->um_chfs;
437 mutex_enter(&chmp->chm_lock_mountfields);
440 error = chfs_write_flash_vnode(chmp, ip, ALLOC_NORMAL);
442 mutex_exit(&chmp->chm_lock_mountfields);
447 error = chfs_write_flash_dirent(chmp,
451 mutex_exit(&chmp->chm_lock_mountfields);
473 struct chfs_mount *chmp = ump->um_chfs;
478 mutex_enter(&chmp->chm_lock_mountfields);
487 chfs_kill_fragtree(chmp, &ip->fragtree);
500 mutex_enter(&chmp->chm_lock_vnocache);
504 chfs_remove_and_obsolete(chmp, parent->chvc, fd->nref,
507 error = chfs_write_flash_dirent(chmp,
513 chfs_add_node_to_list(chmp, parent->chvc, fd->nref,
516 chfs_remove_and_obsolete(chmp, parent->chvc, fd->nref,
522 chfs_remove_frags_of_node(chmp, &ip->fragtree, nref);
523 chfs_remove_and_obsolete(chmp, ip->chvc, nref, &ip->chvc->dnode);
529 chfs_remove_and_obsolete(chmp, ip->chvc, nref, &ip->chvc->v);
535 mutex_exit(&chmp->chm_lock_vnocache);
539 mutex_exit(&chmp->chm_lock_mountfields);