Lines Matching defs:bo

2400 bufbdflush(struct bufobj *bo, struct buf *bp)
2405 bd = &bdomain[bo->bo_domain];
2406 if (bo->bo_dirty.bv_cnt > bd->bd_dirtybufthresh + 10) {
2409 } else if (bo->bo_dirty.bv_cnt > bd->bd_dirtybufthresh) {
2410 BO_LOCK(bo);
2414 TAILQ_FOREACH(nbp, &bo->bo_dirty.bv_hd, b_bobufs) {
2421 BO_UNLOCK(bo);
2422 /* Don't countdeps with the bo lock held. */
2424 BO_LOCK(bo);
2438 BO_UNLOCK(bo);
2456 struct bufobj *bo;
2476 bo = bp->b_bufobj;
2479 BO_BDFLUSH(bo, bp);
3255 struct bufobj *bo;
3266 bo = &vp->v_bufobj;
3279 BO_RLOCK(bo);
3289 BO_RUNLOCK(bo);
3709 incore(struct bufobj *bo, daddr_t blkno)
3711 return (gbincore_unlocked(bo, blkno));
3897 KASSERT(bsize != 0, ("bsize == 0, check bo->bo_bsize"));
3983 struct bufobj *bo;
4001 bo = &vp->v_bufobj;
4005 bp = gbincore_unlocked(bo, blkno);
4015 if ((bo->bo_flag & BO_NONSTERILE) == 0)
4043 if (bp->b_bufobj == bo && bp->b_lblkno == blkno)
4054 BO_RLOCK(bo);
4055 bp = gbincore(bo, blkno);
4070 BO_LOCKPTR(bo), "getblk", slpflag, slptimeo);
4181 BO_RUNLOCK(bo);
4190 bsize = vn_isdisk(vp) ? DEV_BSIZE : bo->bo_bsize;
4191 KASSERT(bsize != 0, ("bsize == 0, check bo->bo_bsize"));
4296 KASSERT(bp->b_bufobj == bo,
4297 ("bp %p wrong b_bufobj %p should be %p", bp, bp->b_bufobj, bo));
5160 bufsync(struct bufobj *bo, int waitfor)
5163 return (VOP_FSYNC(bo2vnode(bo), waitfor, curthread));
5167 bufstrategy(struct bufobj *bo, struct buf *bp)
5173 KASSERT(vp == bo->bo_private, ("Inconsistent vnode bufstrategy"));
5184 bufobj_init(struct bufobj *bo, void *private)
5188 bo->bo_domain =
5190 rw_init(BO_LOCKPTR(bo), "bufobj interlock");
5191 bo->bo_private = private;
5192 TAILQ_INIT(&bo->bo_clean.bv_hd);
5193 pctrie_init(&bo->bo_clean.bv_root);
5194 TAILQ_INIT(&bo->bo_dirty.bv_hd);
5195 pctrie_init(&bo->bo_dirty.bv_root);
5199 bufobj_wrefl(struct bufobj *bo)
5202 KASSERT(bo != NULL, ("NULL bo in bufobj_wref"));
5203 ASSERT_BO_WLOCKED(bo);
5204 bo->bo_numoutput++;
5208 bufobj_wref(struct bufobj *bo)
5211 KASSERT(bo != NULL, ("NULL bo in bufobj_wref"));
5212 BO_LOCK(bo);
5213 bo->bo_numoutput++;
5214 BO_UNLOCK(bo);
5218 bufobj_wdrop(struct bufobj *bo)
5221 KASSERT(bo != NULL, ("NULL bo in bufobj_wdrop"));
5222 BO_LOCK(bo);
5223 KASSERT(bo->bo_numoutput > 0, ("bufobj_wdrop non-positive count"));
5224 if ((--bo->bo_numoutput == 0) && (bo->bo_flag & BO_WWAIT)) {
5225 bo->bo_flag &= ~BO_WWAIT;
5226 wakeup(&bo->bo_numoutput);
5228 BO_UNLOCK(bo);
5232 bufobj_wwait(struct bufobj *bo, int slpflag, int timeo)
5236 KASSERT(bo != NULL, ("NULL bo in bufobj_wwait"));
5237 ASSERT_BO_WLOCKED(bo);
5239 while (bo->bo_numoutput) {
5240 bo->bo_flag |= BO_WWAIT;
5241 error = msleep(&bo->bo_numoutput, BO_LOCKPTR(bo),