Lines Matching refs:bp_head
2436 buf_t bp_head;
2447 bp_head = (buf_t)bp->b_orig;
2449 if (bp_head->b_whichq != -1)
2450 panic("buf_brelse_shadow: bp_head on freelist %d\n", bp_head->b_whichq);
2463 KERNEL_DEBUG(0xbbbbc008 | DBG_FUNC_START, bp, bp_head, bp_head->b_shadow_ref, 0, 0);
2465 bp_head->b_shadow_ref--;
2467 for (bp_temp = bp_head; bp_temp && bp != bp_temp->b_shadow; bp_temp = bp_temp->b_shadow);
2470 panic("buf_brelse_shadow: bp not on list %p", bp_head);
2481 if ((bp_data = bp_head->b_shadow) == NULL)
2489 if (bp_head->b_shadow_ref == 0 && bp_head->b_shadow)
2491 if (bp_head->b_shadow_ref && bp_head->b_shadow == 0)
2494 if (bp_head->b_shadow_ref == 0) {
2495 if (!ISSET(bp_head->b_lflags, BL_BUSY)) {
2497 CLR(bp_head->b_flags, B_AGE);
2498 bp_head->b_timestamp = buf_timestamp();
2500 if (ISSET(bp_head->b_flags, B_LOCKED)) {
2501 bp_head->b_whichq = BQ_LOCKED;
2502 binstailfree(bp_head, &bufqueues[BQ_LOCKED], BQ_LOCKED);
2504 bp_head->b_whichq = BQ_META;
2505 binstailfree(bp_head, &bufqueues[BQ_META], BQ_META);
2507 } else if (ISSET(bp_head->b_lflags, BL_WAITSHADOW)) {
2508 CLR(bp_head->b_lflags, BL_WAITSHADOW);
2510 bp_return = bp_head;
2512 if (ISSET(bp_head->b_lflags, BL_WANTED_REF)) {
2513 CLR(bp_head->b_lflags, BL_WANTED_REF);
2520 wakeup(bp_head);