Lines Matching refs:tbp
341 struct buf *bp, *tbp; in cluster_rbuild() local
359 tbp = fbp; in cluster_rbuild()
360 tbp->b_iocmd = BIO_READ; in cluster_rbuild()
362 tbp = getblk(vp, lbn, size, 0, 0, gbflags); in cluster_rbuild()
363 if (tbp->b_flags & B_CACHE) in cluster_rbuild()
364 return tbp; in cluster_rbuild()
365 tbp->b_flags |= B_ASYNC | B_RAM; in cluster_rbuild()
366 tbp->b_iocmd = BIO_READ; in cluster_rbuild()
368 tbp->b_blkno = blkno; in cluster_rbuild()
369 if ( (tbp->b_flags & B_MALLOC) || in cluster_rbuild()
370 ((tbp->b_flags & B_VMIO) == 0) || (run <= 1) ) in cluster_rbuild()
371 return tbp; in cluster_rbuild()
375 return tbp; in cluster_rbuild()
389 ((vm_offset_t)tbp->b_data & PAGE_MASK)); in cluster_rbuild()
395 bp->b_offset = tbp->b_offset; in cluster_rbuild()
408 vm_object_pip_add(tbp->b_bufobj->bo_object, in cluster_rbuild()
409 tbp->b_npages); in cluster_rbuild()
410 vfs_busy_pages_acquire(tbp); in cluster_rbuild()
417 tbp = getblk(vp, lbn + i, size, 0, 0, GB_LOCK_NOWAIT | in cluster_rbuild()
421 if (tbp == NULL) in cluster_rbuild()
433 if ((tbp->b_vflags & BV_BKGRDINPROG) || in cluster_rbuild()
434 (tbp->b_flags & B_CACHE) || in cluster_rbuild()
435 (tbp->b_flags & B_VMIO) == 0) { in cluster_rbuild()
436 bqrelse(tbp); in cluster_rbuild()
445 off = tbp->b_offset; in cluster_rbuild()
452 if (vm_page_trysbusy(tbp->b_pages[j]) == 0) in cluster_rbuild()
454 if ((tbp->b_pages[j]->valid & in cluster_rbuild()
456 vm_page_sunbusy(tbp->b_pages[j]); in cluster_rbuild()
459 vm_object_pip_add(tbp->b_bufobj->bo_object, 1); in cluster_rbuild()
465 vm_object_pip_wakeupn(tbp->b_bufobj->bo_object, in cluster_rbuild()
468 vm_page_sunbusy(tbp->b_pages[k]); in cluster_rbuild()
469 bqrelse(tbp); in cluster_rbuild()
477 tbp->b_flags |= B_RAM; in cluster_rbuild()
486 tbp->b_flags |= B_ASYNC; in cluster_rbuild()
487 tbp->b_iocmd = BIO_READ; in cluster_rbuild()
488 if (tbp->b_blkno == tbp->b_lblkno) { in cluster_rbuild()
489 tbp->b_blkno = bn; in cluster_rbuild()
490 } else if (tbp->b_blkno != bn) { in cluster_rbuild()
498 BUF_KERNPROC(tbp); in cluster_rbuild()
500 tbp, b_cluster.cluster_entry); in cluster_rbuild()
501 for (j = 0; j < tbp->b_npages; j += 1) { in cluster_rbuild()
504 m = tbp->b_pages[j]; in cluster_rbuild()
511 tbp->b_pages[j] = bogus_page; in cluster_rbuild()
519 if (tbp->b_bcount != size) in cluster_rbuild()
520 printf("warning: tbp->b_bcount wrong %ld vs %ld\n", tbp->b_bcount, size); in cluster_rbuild()
521 if (tbp->b_bufsize != size) in cluster_rbuild()
522 printf("warning: tbp->b_bufsize wrong %ld vs %ld\n", tbp->b_bufsize, size); in cluster_rbuild()
555 struct buf *nbp, *tbp; in cluster_callback() local
572 for (tbp = TAILQ_FIRST(&bp->b_cluster.cluster_head); in cluster_callback()
573 tbp; tbp = nbp) { in cluster_callback()
574 nbp = TAILQ_NEXT(&tbp->b_cluster, cluster_entry); in cluster_callback()
576 tbp->b_ioflags |= BIO_ERROR; in cluster_callback()
577 tbp->b_error = error; in cluster_callback()
579 tbp->b_dirtyoff = tbp->b_dirtyend = 0; in cluster_callback()
580 tbp->b_flags &= ~B_INVAL; in cluster_callback()
581 tbp->b_ioflags &= ~BIO_ERROR; in cluster_callback()
589 if (tbp->b_flags & B_DIRECT) in cluster_callback()
590 tbp->b_flags |= B_RELBUF; in cluster_callback()
592 bufdone(tbp); in cluster_callback()
809 struct buf *bp, *tbp; in cluster_wbuild() local
826 if ((tbp = gbincore(&vp->v_bufobj, start_lbn)) == NULL || in cluster_wbuild()
827 (tbp->b_vflags & BV_BKGRDINPROG)) { in cluster_wbuild()
833 if (BUF_LOCK(tbp, in cluster_wbuild()
839 if ((tbp->b_flags & (B_INVAL | B_DELWRI)) != B_DELWRI) { in cluster_wbuild()
840 BUF_UNLOCK(tbp); in cluster_wbuild()
845 bremfree(tbp); in cluster_wbuild()
846 tbp->b_flags &= ~B_DONE; in cluster_wbuild()
856 if (((tbp->b_flags & (B_CLUSTEROK | B_MALLOC | B_VMIO)) != in cluster_wbuild()
858 (tbp->b_bcount != tbp->b_bufsize) || in cluster_wbuild()
859 (tbp->b_bcount != size) || in cluster_wbuild()
862 totalwritten += tbp->b_bufsize; in cluster_wbuild()
863 bawrite(tbp); in cluster_wbuild()
878 if (tbp->b_wcred != NOCRED) in cluster_wbuild()
879 bp->b_wcred = crhold(tbp->b_wcred); in cluster_wbuild()
881 bp->b_blkno = tbp->b_blkno; in cluster_wbuild()
882 bp->b_lblkno = tbp->b_lblkno; in cluster_wbuild()
883 bp->b_offset = tbp->b_offset; in cluster_wbuild()
892 (tbp->b_flags & B_VMIO) == 0) { in cluster_wbuild()
894 ((vm_offset_t)tbp->b_data & PAGE_MASK)); in cluster_wbuild()
898 bp->b_flags |= B_CLUSTER | (tbp->b_flags & (B_VMIO | in cluster_wbuild()
914 if ((tbp = gbincore(bo, start_lbn)) == NULL || in cluster_wbuild()
915 (tbp->b_vflags & BV_BKGRDINPROG)) { in cluster_wbuild()
927 if (BUF_LOCK(tbp, in cluster_wbuild()
932 if ((tbp->b_flags & (B_VMIO | B_CLUSTEROK | in cluster_wbuild()
936 tbp->b_wcred != bp->b_wcred) { in cluster_wbuild()
937 BUF_UNLOCK(tbp); in cluster_wbuild()
946 if ((tbp->b_bcount != size) || in cluster_wbuild()
948 tbp->b_blkno) || in cluster_wbuild()
949 ((tbp->b_npages + bp->b_npages) > in cluster_wbuild()
951 BUF_UNLOCK(tbp); in cluster_wbuild()
960 bremfree(tbp); in cluster_wbuild()
961 tbp->b_flags &= ~B_DONE; in cluster_wbuild()
971 if (tbp->b_flags & B_VMIO) { in cluster_wbuild()
975 vfs_busy_pages_acquire(tbp); in cluster_wbuild()
977 for (j = 0; j < tbp->b_npages; j += 1) { in cluster_wbuild()
978 m = tbp->b_pages[j]; in cluster_wbuild()
982 tbp->b_pages[j]); in cluster_wbuild()
983 bqrelse(tbp); in cluster_wbuild()
988 vm_object_pip_add(tbp->b_bufobj->bo_object, in cluster_wbuild()
989 tbp->b_npages); in cluster_wbuild()
990 for (j = 0; j < tbp->b_npages; j += 1) { in cluster_wbuild()
991 m = tbp->b_pages[j]; in cluster_wbuild()
1006 bp->b_flags |= (tbp->b_flags & B_BARRIER); in cluster_wbuild()
1007 tbp->b_flags &= ~(B_DONE | B_BARRIER); in cluster_wbuild()
1008 tbp->b_flags |= B_ASYNC; in cluster_wbuild()
1009 tbp->b_ioflags &= ~BIO_ERROR; in cluster_wbuild()
1010 tbp->b_iocmd = BIO_WRITE; in cluster_wbuild()
1011 bundirty(tbp); in cluster_wbuild()
1012 reassignbuf(tbp); /* put on clean list */ in cluster_wbuild()
1013 bufobj_wref(tbp->b_bufobj); in cluster_wbuild()
1014 BUF_KERNPROC(tbp); in cluster_wbuild()
1015 buf_track(tbp, __func__); in cluster_wbuild()
1017 tbp, b_cluster.cluster_entry); in cluster_wbuild()