Lines Matching refs:block
98 tnf_block_header_t *block; in tnfw_b_alloc_block() local
157 block = (tnf_block_header_t *) ((char *) fh + i); in tnfw_b_alloc_block()
158 if (!tnfw_b_get_lock(&block->A_lock) && in tnfw_b_alloc_block()
159 block->generation == 0) in tnfw_b_alloc_block()
170 block->tag = TNFW_B_TAG_DIFF( in tnfw_b_alloc_block()
173 block->generation = TNF_TAG_GENERATION_NUM; in tnfw_b_alloc_block()
174 block->bytes_valid = sizeof (tnf_block_header_t); in tnfw_b_alloc_block()
175 block->next_block = NULL; in tnfw_b_alloc_block()
176 tnfw_b_clear_lock(&block->A_lock); in tnfw_b_alloc_block()
177 return (block); in tnfw_b_alloc_block()
202 block = (tnf_block_header_t *) in tnfw_b_alloc_block()
206 if (block->generation == TNF_TAG_GENERATION_NUM) in tnfw_b_alloc_block()
208 else if (block->generation >= generation) in tnfw_b_alloc_block()
210 else if (tnfw_b_get_lock(&block->A_lock)) in tnfw_b_alloc_block()
212 else if (block->generation == TNF_TAG_GENERATION_NUM) in tnfw_b_alloc_block()
214 else if (block->generation >= generation) in tnfw_b_alloc_block()
216 else if (tnfw_b_get_lock(&block->B_lock)) { in tnfw_b_alloc_block()
217 tnfw_b_clear_lock(&block->A_lock); in tnfw_b_alloc_block()
223 if (block->generation < generation && in tnfw_b_alloc_block()
224 !tnfw_b_get_lock(&block->A_lock)) { in tnfw_b_alloc_block()
225 if (block->generation < generation && in tnfw_b_alloc_block()
226 !tnfw_b_get_lock(&block->B_lock)) { in tnfw_b_alloc_block()
229 tnfw_b_clear_lock(&block->A_lock); in tnfw_b_alloc_block()
252 thr_self(), blocknum, generation, block); in tnfw_b_alloc_block()
255 block->tag = TNFW_B_TAG_DIFF(forwarding_ptrs.fw_block_header, fh); in tnfw_b_alloc_block()
256 block->generation = (istag) ? TNF_TAG_GENERATION_NUM : generation; in tnfw_b_alloc_block()
257 block->bytes_valid = sizeof (tnf_block_header_t); in tnfw_b_alloc_block()
258 block->next_block = NULL; in tnfw_b_alloc_block()
260 tnfw_b_clear_lock(&block->A_lock); in tnfw_b_alloc_block()
262 tnfw_b_clear_lock(&block->B_lock); in tnfw_b_alloc_block()
307 return (block); in tnfw_b_alloc_block()
343 tnf_block_header_t *block; in tnfw_b_init_buffer() local
417 block = (tnf_block_header_t *) in tnfw_b_init_buffer()
420 block->tag = 0; in tnfw_b_init_buffer()
421 block->generation = 0; in tnfw_b_init_buffer()
422 tnfw_b_clear_lock(&block->A_lock); in tnfw_b_init_buffer()
423 tnfw_b_clear_lock(&block->B_lock); in tnfw_b_init_buffer()
443 tnf_block_header_t *block, *new_block; in tnfw_b_alloc() local
469 block = pos->tnfw_w_block; in tnfw_b_alloc()
478 if (block != NULL && wcb->tnfw_w_a_lock_released) { in tnfw_b_alloc()
480 if (!tnfw_b_get_lock(&block->A_lock)) { in tnfw_b_alloc()
482 if (wcb->tnfw_w_generation != block->generation) { in tnfw_b_alloc()
483 tnfw_b_clear_lock(&block->A_lock); in tnfw_b_alloc()
491 if (block == NULL || offset + size > fh->com.block_size) { in tnfw_b_alloc()
501 wcb, new_block, block, pos->tnfw_w_uncommitted); in tnfw_b_alloc()
503 if (block != NULL) { in tnfw_b_alloc()
506 (void) bzero((char *)block + offset, in tnfw_b_alloc()
509 (void) memset((char *)block + offset, 0, in tnfw_b_alloc()
516 tnfw_b_clear_lock(&block->A_lock); in tnfw_b_alloc()
519 tnfw_b_clear_lock(&block->A_lock); in tnfw_b_alloc()
528 block->next_block = new_block; in tnfw_b_alloc()
533 pos->tnfw_w_uncommitted = block; in tnfw_b_alloc()
559 tnf_block_header_t *block; in tnfw_b_xcommit() local
573 block = pos->tnfw_w_uncommitted; in tnfw_b_xcommit()
574 while (block && (block != pos->tnfw_w_block)) { in tnfw_b_xcommit()
577 block->generation, block, pos->tnfw_w_block); in tnfw_b_xcommit()
579 block->bytes_valid = fh->com.block_size; in tnfw_b_xcommit()
580 pos->tnfw_w_uncommitted = block->next_block; in tnfw_b_xcommit()
581 tnfw_b_clear_lock(&block->A_lock); in tnfw_b_xcommit()
582 block = pos->tnfw_w_uncommitted; in tnfw_b_xcommit()
584 if (block != NULL) { in tnfw_b_xcommit()
587 block->generation, block, pos->tnfw_w_write_off); in tnfw_b_xcommit()
589 block->bytes_valid = pos->tnfw_w_write_off; in tnfw_b_xcommit()
594 wcb->tnfw_w_generation = block->generation; in tnfw_b_xcommit()
595 tnfw_b_clear_lock(&block->A_lock); in tnfw_b_xcommit()
605 block = pos->tnfw_w_uncommitted; in tnfw_b_xcommit()
606 while (block && (block != pos->tnfw_w_block)) { in tnfw_b_xcommit()
609 thr_self(), block, pos->tnfw_w_block); in tnfw_b_xcommit()
611 block->bytes_valid = fh->com.block_size; in tnfw_b_xcommit()
612 pos->tnfw_w_uncommitted = block->next_block; in tnfw_b_xcommit()
613 block = pos->tnfw_w_uncommitted; in tnfw_b_xcommit()
615 if (block != NULL) in tnfw_b_xcommit()
616 block->bytes_valid = pos->tnfw_w_write_off; in tnfw_b_xcommit()
628 tnf_block_header_t *block, *next; in tnfw_b_xabort() local
633 block = pos->tnfw_w_block = pos->tnfw_w_uncommitted; in tnfw_b_xabort()
634 if (block != NULL) { in tnfw_b_xabort()
635 pos->tnfw_w_write_off = block->bytes_valid; in tnfw_b_xabort()
638 tnfw_b_clear_lock(&block->A_lock); in tnfw_b_xabort()
639 wcb->tnfw_w_generation = block->generation; in tnfw_b_xabort()
643 block = block->next_block; in tnfw_b_xabort()
645 while (block != NULL) { in tnfw_b_xabort()
646 next = block->next_block; in tnfw_b_xabort()
647 tnfw_b_clear_lock(&block->A_lock); in tnfw_b_xabort()
648 block = next; in tnfw_b_xabort()
652 block = pos->tnfw_w_uncommitted; in tnfw_b_xabort()
653 while (block && (block != pos->tnfw_w_block)) { in tnfw_b_xabort()
654 block->bytes_valid = fh->com.block_size; in tnfw_b_xabort()
655 pos->tnfw_w_uncommitted = block->next_block; in tnfw_b_xabort()
656 block = pos->tnfw_w_uncommitted; in tnfw_b_xabort()
658 if (block != NULL) in tnfw_b_xabort()
659 block->bytes_valid = pos->tnfw_w_write_off; in tnfw_b_xabort()