Lines Matching refs:bp
41 static int xfs_dir2_leafn_add(struct xfs_buf *bp, xfs_da_args_t *args,
46 static int xfs_dir2_leafn_remove(xfs_da_args_t *args, struct xfs_buf *bp,
56 #define xfs_dir3_leaf_check(dp, bp) \ argument
58 if (!xfs_dir3_leafn_check((dp), (bp))) \
65 struct xfs_buf *bp) in xfs_dir3_leafn_check() argument
67 struct xfs_dir2_leaf *leaf = bp->b_addr; in xfs_dir3_leafn_check()
73 struct xfs_dir3_leaf_hdr *leaf3 = bp->b_addr; in xfs_dir3_leafn_check()
74 if (be64_to_cpu(leaf3->info.blkno) != bp->b_bn) in xfs_dir3_leafn_check()
82 #define xfs_dir3_leaf_check(dp, bp) argument
87 struct xfs_buf *bp) in xfs_dir3_free_verify() argument
89 struct xfs_mount *mp = bp->b_target->bt_mount; in xfs_dir3_free_verify()
90 struct xfs_dir2_free_hdr *hdr = bp->b_addr; in xfs_dir3_free_verify()
93 struct xfs_dir3_blk_hdr *hdr3 = bp->b_addr; in xfs_dir3_free_verify()
99 if (be64_to_cpu(hdr3->blkno) != bp->b_bn) in xfs_dir3_free_verify()
115 struct xfs_buf *bp) in xfs_dir3_free_read_verify() argument
117 struct xfs_mount *mp = bp->b_target->bt_mount; in xfs_dir3_free_read_verify()
120 !xfs_buf_verify_cksum(bp, XFS_DIR3_FREE_CRC_OFF)) in xfs_dir3_free_read_verify()
121 xfs_buf_ioerror(bp, -EFSBADCRC); in xfs_dir3_free_read_verify()
122 else if (!xfs_dir3_free_verify(bp)) in xfs_dir3_free_read_verify()
123 xfs_buf_ioerror(bp, -EFSCORRUPTED); in xfs_dir3_free_read_verify()
125 if (bp->b_error) in xfs_dir3_free_read_verify()
126 xfs_verifier_error(bp); in xfs_dir3_free_read_verify()
131 struct xfs_buf *bp) in xfs_dir3_free_write_verify() argument
133 struct xfs_mount *mp = bp->b_target->bt_mount; in xfs_dir3_free_write_verify()
134 struct xfs_buf_log_item *bip = bp->b_fspriv; in xfs_dir3_free_write_verify()
135 struct xfs_dir3_blk_hdr *hdr3 = bp->b_addr; in xfs_dir3_free_write_verify()
137 if (!xfs_dir3_free_verify(bp)) { in xfs_dir3_free_write_verify()
138 xfs_buf_ioerror(bp, -EFSCORRUPTED); in xfs_dir3_free_write_verify()
139 xfs_verifier_error(bp); in xfs_dir3_free_write_verify()
149 xfs_buf_update_cksum(bp, XFS_DIR3_FREE_CRC_OFF); in xfs_dir3_free_write_verify()
207 struct xfs_buf *bp; in xfs_dir3_free_get_buf() local
212 -1, &bp, XFS_DATA_FORK); in xfs_dir3_free_get_buf()
216 xfs_trans_buf_set_type(tp, bp, XFS_BLFT_DIR_FREE_BUF); in xfs_dir3_free_get_buf()
217 bp->b_ops = &xfs_dir3_free_buf_ops; in xfs_dir3_free_get_buf()
223 memset(bp->b_addr, 0, sizeof(struct xfs_dir3_free_hdr)); in xfs_dir3_free_get_buf()
227 struct xfs_dir3_free_hdr *hdr3 = bp->b_addr; in xfs_dir3_free_get_buf()
231 hdr3->hdr.blkno = cpu_to_be64(bp->b_bn); in xfs_dir3_free_get_buf()
236 dp->d_ops->free_hdr_to_disk(bp->b_addr, &hdr); in xfs_dir3_free_get_buf()
237 *bpp = bp; in xfs_dir3_free_get_buf()
247 struct xfs_buf *bp, in xfs_dir2_free_log_bests() argument
254 free = bp->b_addr; in xfs_dir2_free_log_bests()
258 xfs_trans_log_buf(args->trans, bp, in xfs_dir2_free_log_bests()
270 struct xfs_buf *bp) in xfs_dir2_free_log_header() argument
275 free = bp->b_addr; in xfs_dir2_free_log_header()
279 xfs_trans_log_buf(args->trans, bp, 0, in xfs_dir2_free_log_header()
378 struct xfs_buf *bp, /* leaf buffer */ in xfs_dir2_leafn_add() argument
396 leaf = bp->b_addr; in xfs_dir2_leafn_add()
453 xfs_dir3_leaf_log_header(args, bp); in xfs_dir2_leafn_add()
454 xfs_dir3_leaf_log_ents(args, bp, lfloglow, lfloghigh); in xfs_dir2_leafn_add()
455 xfs_dir3_leaf_check(dp, bp); in xfs_dir2_leafn_add()
463 struct xfs_buf *bp, in xfs_dir2_free_hdr_check() argument
468 dp->d_ops->free_hdr_from_disk(&hdr, bp->b_addr); in xfs_dir2_free_hdr_check()
476 #define xfs_dir2_free_hdr_check(dp, bp, db) argument
486 struct xfs_buf *bp, /* leaf buffer */ in xfs_dir2_leafn_lasthash() argument
489 struct xfs_dir2_leaf *leaf = bp->b_addr; in xfs_dir2_leafn_lasthash()
513 struct xfs_buf *bp, /* leaf buffer */ in xfs_dir2_leafn_lookup_for_addname() argument
539 leaf = bp->b_addr; in xfs_dir2_leafn_lookup_for_addname()
543 xfs_dir3_leaf_check(dp, bp); in xfs_dir2_leafn_lookup_for_addname()
549 index = xfs_dir2_leaf_search_hash(args, bp); in xfs_dir2_leafn_lookup_for_addname()
555 curbp = state->extrablk.bp; in xfs_dir2_leafn_lookup_for_addname()
642 state->extrablk.bp = curbp; in xfs_dir2_leafn_lookup_for_addname()
668 struct xfs_buf *bp, /* leaf buffer */ in xfs_dir2_leafn_lookup_for_entry() argument
691 leaf = bp->b_addr; in xfs_dir2_leafn_lookup_for_entry()
695 xfs_dir3_leaf_check(dp, bp); in xfs_dir2_leafn_lookup_for_entry()
701 index = xfs_dir2_leaf_search_hash(args, bp); in xfs_dir2_leafn_lookup_for_entry()
706 curbp = state->extrablk.bp; in xfs_dir2_leafn_lookup_for_entry()
746 curbp = state->extrablk.bp; in xfs_dir2_leafn_lookup_for_entry()
774 xfs_trans_brelse(tp, state->extrablk.bp); in xfs_dir2_leafn_lookup_for_entry()
780 state->extrablk.bp = curbp; in xfs_dir2_leafn_lookup_for_entry()
796 state->extrablk.bp = curbp; in xfs_dir2_leafn_lookup_for_entry()
804 if (state->extrablk.bp != curbp) in xfs_dir2_leafn_lookup_for_entry()
821 struct xfs_buf *bp, /* leaf buffer */ in xfs_dir2_leafn_lookup_int() argument
827 return xfs_dir2_leafn_lookup_for_addname(bp, args, indexp, in xfs_dir2_leafn_lookup_int()
829 return xfs_dir2_leafn_lookup_for_entry(bp, args, indexp, state); in xfs_dir2_leafn_lookup_int()
974 if ((swap = xfs_dir2_leafn_order(dp, blk1->bp, blk2->bp))) { in xfs_dir2_leafn_rebalance()
981 leaf1 = blk1->bp->b_addr; in xfs_dir2_leafn_rebalance()
982 leaf2 = blk2->bp->b_addr; in xfs_dir2_leafn_rebalance()
1020 xfs_dir3_leafn_moveents(args, blk1->bp, &hdr1, ents1, in xfs_dir2_leafn_rebalance()
1021 hdr1.count - count, blk2->bp, in xfs_dir2_leafn_rebalance()
1024 xfs_dir3_leafn_moveents(args, blk2->bp, &hdr2, ents2, 0, in xfs_dir2_leafn_rebalance()
1025 blk1->bp, &hdr1, ents1, in xfs_dir2_leafn_rebalance()
1034 xfs_dir3_leaf_log_header(args, blk1->bp); in xfs_dir2_leafn_rebalance()
1035 xfs_dir3_leaf_log_header(args, blk2->bp); in xfs_dir2_leafn_rebalance()
1037 xfs_dir3_leaf_check(dp, blk1->bp); in xfs_dir2_leafn_rebalance()
1038 xfs_dir3_leaf_check(dp, blk2->bp); in xfs_dir2_leafn_rebalance()
1155 struct xfs_buf *bp, /* leaf buffer */ in xfs_dir2_leafn_remove() argument
1180 leaf = bp->b_addr; in xfs_dir2_leafn_remove()
1203 xfs_dir3_leaf_log_header(args, bp); in xfs_dir2_leafn_remove()
1206 xfs_dir3_leaf_log_ents(args, bp, index, index); in xfs_dir2_leafn_remove()
1212 dbp = dblk->bp; in xfs_dir2_leafn_remove()
1276 dblk->bp = NULL; in xfs_dir2_leafn_remove()
1297 xfs_dir3_leaf_check(dp, bp); in xfs_dir2_leafn_remove()
1336 &newblk->bp, XFS_DIR2_LEAFN_MAGIC); in xfs_dir2_leafn_split()
1355 error = xfs_dir2_leafn_add(oldblk->bp, args, oldblk->index); in xfs_dir2_leafn_split()
1357 error = xfs_dir2_leafn_add(newblk->bp, args, newblk->index); in xfs_dir2_leafn_split()
1361 oldblk->hashval = xfs_dir2_leafn_lasthash(dp, oldblk->bp, NULL); in xfs_dir2_leafn_split()
1362 newblk->hashval = xfs_dir2_leafn_lasthash(dp, newblk->bp, NULL); in xfs_dir2_leafn_split()
1363 xfs_dir3_leaf_check(dp, oldblk->bp); in xfs_dir2_leafn_split()
1364 xfs_dir3_leaf_check(dp, newblk->bp); in xfs_dir2_leafn_split()
1384 struct xfs_buf *bp; /* leaf buffer */ in xfs_dir2_leafn_toosmall() local
1402 leaf = blk->bp->b_addr; in xfs_dir2_leafn_toosmall()
1405 xfs_dir3_leaf_check(dp, blk->bp); in xfs_dir2_leafn_toosmall()
1444 for (i = 0, bp = NULL; i < 2; forward = !forward, i++) { in xfs_dir2_leafn_toosmall()
1454 blkno, -1, &bp); in xfs_dir2_leafn_toosmall()
1465 leaf = bp->b_addr; in xfs_dir2_leafn_toosmall()
1476 xfs_trans_brelse(state->args->trans, bp); in xfs_dir2_leafn_toosmall()
1526 drop_leaf = drop_blk->bp->b_addr; in xfs_dir2_leafn_unbalance()
1527 save_leaf = save_blk->bp->b_addr; in xfs_dir2_leafn_unbalance()
1539 xfs_dir3_leaf_compact(args, &drophdr, drop_blk->bp); in xfs_dir2_leafn_unbalance()
1541 xfs_dir3_leaf_compact(args, &savehdr, save_blk->bp); in xfs_dir2_leafn_unbalance()
1547 if (xfs_dir2_leafn_order(dp, save_blk->bp, drop_blk->bp)) in xfs_dir2_leafn_unbalance()
1548 xfs_dir3_leafn_moveents(args, drop_blk->bp, &drophdr, dents, 0, in xfs_dir2_leafn_unbalance()
1549 save_blk->bp, &savehdr, sents, 0, in xfs_dir2_leafn_unbalance()
1552 xfs_dir3_leafn_moveents(args, drop_blk->bp, &drophdr, dents, 0, in xfs_dir2_leafn_unbalance()
1553 save_blk->bp, &savehdr, sents, in xfs_dir2_leafn_unbalance()
1560 xfs_dir3_leaf_log_header(args, save_blk->bp); in xfs_dir2_leafn_unbalance()
1561 xfs_dir3_leaf_log_header(args, drop_blk->bp); in xfs_dir2_leafn_unbalance()
1563 xfs_dir3_leaf_check(dp, save_blk->bp); in xfs_dir2_leafn_unbalance()
1564 xfs_dir3_leaf_check(dp, drop_blk->bp); in xfs_dir2_leafn_unbalance()
1611 rval = xfs_dir2_leafn_add(blk->bp, args, blk->index); in xfs_dir2_node_addname()
1680 fbp = fblk->bp; in xfs_dir2_node_addname_int()
1796 if (fblk && fblk->bp) in xfs_dir2_node_addname_int()
1797 fblk->bp = NULL; in xfs_dir2_node_addname_int()
1826 if (fblk && fblk->bp) in xfs_dir2_node_addname_int()
1827 fblk->bp = NULL; in xfs_dir2_node_addname_int()
2041 ((char *)state->extrablk.bp->b_addr + in xfs_dir2_node_lookup()
2049 xfs_trans_brelse(args->trans, state->path.blk[i].bp); in xfs_dir2_node_lookup()
2050 state->path.blk[i].bp = NULL; in xfs_dir2_node_lookup()
2055 if (state->extravalid && state->extrablk.bp) { in xfs_dir2_node_lookup()
2056 xfs_trans_brelse(args->trans, state->extrablk.bp); in xfs_dir2_node_lookup()
2057 state->extrablk.bp = NULL; in xfs_dir2_node_lookup()
2102 error = xfs_dir2_leafn_remove(args, blk->bp, blk->index, in xfs_dir2_node_removename()
2178 leaf = blk->bp->b_addr; in xfs_dir2_node_replace()
2185 hdr = state->extrablk.bp->b_addr; in xfs_dir2_node_replace()
2198 xfs_dir2_data_log_entry(args, state->extrablk.bp, dep); in xfs_dir2_node_replace()
2205 xfs_trans_brelse(args->trans, state->extrablk.bp); in xfs_dir2_node_replace()
2206 state->extrablk.bp = NULL; in xfs_dir2_node_replace()
2212 xfs_trans_brelse(args->trans, state->path.blk[i].bp); in xfs_dir2_node_replace()
2213 state->path.blk[i].bp = NULL; in xfs_dir2_node_replace()
2229 struct xfs_buf *bp; /* freespace buffer */ in xfs_dir2_node_trim_free() local
2241 error = xfs_dir2_free_try_read(tp, dp, fo, &bp); in xfs_dir2_node_trim_free()
2248 if (!bp) in xfs_dir2_node_trim_free()
2250 free = bp->b_addr; in xfs_dir2_node_trim_free()
2257 xfs_trans_brelse(tp, bp); in xfs_dir2_node_trim_free()
2265 xfs_dir2_da_to_db(args->geo, (xfs_dablk_t)fo), bp); in xfs_dir2_node_trim_free()
2273 xfs_trans_brelse(tp, bp); in xfs_dir2_node_trim_free()