Lines Matching refs:bp

54 static int btree_journal_modify_block_end(struct hfsmount *hfsmp, struct buf *bp);
56 void btree_swap_node(struct buf *bp, __unused void *arg);
99 struct buf *bp = NULL;
116 bp = buf_getblk(vp, (daddr64_t)blockNum, block->blockSize, 0, 0, BLK_META);
117 if (bp &&
119 buf_setblkno(bp, blkno);
122 retval = buf_meta_bread(vp, (daddr64_t)blockNum, block->blockSize, NOCRED, &bp);
124 if (bp == NULL)
128 block->blockHeader = bp;
129 block->buffer = (char *)buf_dataptr(bp);
130 block->blockNum = buf_lblkno(bp);
131 block->blockReadFromDisk = (buf_fromcache(bp) == 0); /* not found in cache ==> came from disk */
140 (((BTHeaderRec *)((char *)block->buffer + 14))->nodeSize != buf_count(bp)) &&
141 (SWAP_BE16 (((BTHeaderRec *)((char *)block->buffer + 14))->nodeSize) != buf_count(bp))) {
174 buf_markinvalid(bp);
179 if (bp)
180 buf_brelse(bp);
192 struct buf *bp = NULL;
198 bp = (struct buf *) blockPtr->blockHeader;
199 if (bp == NULL) {
200 panic("hfs: ModifyBlockStart: null bp for blockdescptr %p?!?\n", blockPtr);
204 journal_modify_block_start(hfsmp->jnl, bp);
209 btree_swap_node(struct buf *bp, __unused void *arg)
213 struct vnode *vp = buf_vnode(bp);
217 block.blockHeader = bp;
218 block.buffer = (char *)buf_dataptr(bp);
219 block.blockNum = buf_lblkno(bp);
221 block.blockReadFromDisk = (buf_fromcache(bp) == 0);
222 block.blockSize = buf_count(bp);
235 btree_journal_modify_block_end(struct hfsmount *hfsmp, struct buf *bp)
237 return journal_modify_block_end(hfsmp->jnl, bp, btree_swap_node, hfsmp);
245 struct buf *bp = NULL;
247 bp = (struct buf *) blockPtr->blockHeader;
249 if (bp == NULL) {
255 buf_markinvalid(bp);
257 if (hfsmp->jnl && (buf_flags(bp) & B_LOCKED)) {
258 journal_kill_block(hfsmp->jnl, bp);
260 buf_brelse(bp); /* note: B-tree code will clear blockPtr->blockHeader and blockPtr->buffer */
263 /* Don't let anyone else try to use this bp, it's been consumed */
270 panic("hfs: releaseblock: modified is 0 but forcewrite set! bp %p\n", bp);
273 retval = btree_journal_modify_block_end(hfsmp, bp);
276 retval = VNOP_BWRITE(bp);
279 /* Don't let anyone else try to use this bp, it's been consumed */
300 buf_setflags(bp, B_LOCKED);
310 panic("hfs: releaseblock: modified is 0 but markdirty set! bp %p\n", bp);
312 retval = btree_journal_modify_block_end(hfsmp, bp);
314 } else if (bdwrite_internal(bp, 1) != 0) {
319 buf_clearflags(bp, B_LOCKED);
320 buf_bawrite(bp);
323 /* Don't let anyone else try to use this bp, it's been consumed */
335 // journal_modify_block_abort(hfsmp->jnl, bp);
336 //panic("hfs: releaseblock called for 0x%x but mod_block_start previously called.\n", bp);
337 btree_journal_modify_block_end(hfsmp, bp);
340 buf_brelse(bp); /* note: B-tree code will clear blockPtr->blockHeader and blockPtr->buffer */
343 /* Don't let anyone else try to use this bp, it's been consumed */
555 struct buf *bp = NULL;
563 bp = buf_getblk(vp, blk, blksize, 0, 0, BLK_META);
564 if (bp == NULL)
571 //journal_modify_block_start(hfsmp->jnl, bp);
573 bzero((char *)buf_dataptr(bp), blksize);
575 buf_markaged(bp);
581 //journal_modify_block_end(hfsmp->jnl, bp);
586 VNOP_BWRITE(bp);
588 buf_bawrite(bp);
592 VNOP_BWRITE(bp);
594 buf_bawrite(bp);
622 struct buf *bp = NULL;
748 bp = buf_getblk(vp, 0, nodesize, 0, 0, BLK_META);
749 if (bp == NULL) {
754 buffer = (void *)buf_dataptr(bp);
756 blkdesc.blockHeader = (void *)bp;
762 if (buf_size(bp) != nodesize)
763 panic("hfs_create_attr_btree: bad buffer size (%d)\n", buf_size(bp));
812 result = btree_journal_modify_block_end(hfsmp, bp);
814 result = VNOP_BWRITE(bp);
821 bp = buf_getblk(vp, node_num, nodesize, 0, 0, BLK_META);
822 if (bp == NULL) {
826 buffer = (void *)buf_dataptr(bp);
828 blkdesc.blockHeader = (void *)bp;
853 result = btree_journal_modify_block_end(hfsmp, bp);
855 result = VNOP_BWRITE(bp);