Lines Matching refs:level
26 int level = NILFS_BTREE_LEVEL_DATA;
32 for (; level < NILFS_BTREE_LEVEL_MAX; level++) {
33 path[level].bp_bh = NULL;
34 path[level].bp_sib_bh = NULL;
35 path[level].bp_index = 0;
36 path[level].bp_oldreq.bpr_ptr = NILFS_BMAP_INVALID_PTR;
37 path[level].bp_newreq.bpr_ptr = NILFS_BMAP_INVALID_PTR;
38 path[level].bp_op = NULL;
47 int level = NILFS_BTREE_LEVEL_DATA;
49 for (; level < NILFS_BTREE_LEVEL_MAX; level++)
50 brelse(path[level].bp_bh);
96 nilfs_btree_node_set_level(struct nilfs_btree_node *node, int level)
98 node->bn_level = level;
163 int level, int nchildren, int ncmax,
171 nilfs_btree_node_set_level(node, level);
343 int level, flags, nchildren;
346 level = nilfs_btree_node_get_level(node);
350 if (unlikely(level < NILFS_BTREE_LEVEL_NODE_MIN ||
351 level >= NILFS_BTREE_LEVEL_MAX ||
356 "bad btree node (ino=%lu, blocknr=%llu): level = %d, flags = 0x%x, nchildren = %d",
357 inode->i_ino, (unsigned long long)blocknr, level,
374 int level, flags, nchildren;
377 level = nilfs_btree_node_get_level(node);
381 if (unlikely(level < NILFS_BTREE_LEVEL_NODE_MIN ||
382 level >= NILFS_BTREE_LEVEL_MAX ||
386 "bad btree root (ino=%lu): level = %d, flags = 0x%x, nchildren = %d",
387 inode->i_ino, level, flags, nchildren);
416 nilfs_btree_get_nonroot_node(const struct nilfs_btree_path *path, int level)
418 return (struct nilfs_btree_node *)path[level].bp_bh->b_data;
422 nilfs_btree_get_sib_node(const struct nilfs_btree_path *path, int level)
424 return (struct nilfs_btree_node *)path[level].bp_sib_bh->b_data;
435 int level, int *ncmaxp)
439 if (level == nilfs_btree_height(btree) - 1) {
443 node = nilfs_btree_get_nonroot_node(path, level);
450 struct nilfs_btree_node *node, int level)
452 if (unlikely(nilfs_btree_node_get_level(node) != level)) {
455 "btree level mismatch (ino=%lu): %d != %d",
457 nilfs_btree_node_get_level(node), level);
554 int level, index, found, ncmax, ret;
557 level = nilfs_btree_node_get_level(node);
558 if (level < minlevel || nilfs_btree_node_get_nchildren(node) <= 0)
564 path[level].bp_bh = NULL;
565 path[level].bp_index = index;
569 while (--level >= minlevel) {
571 if (level == NILFS_BTREE_LEVEL_NODE_MIN && readahead) {
572 p.node = nilfs_btree_get_node(btree, path, level + 1,
578 ret = __nilfs_btree_get_block(btree, ptr, &path[level].bp_bh,
583 node = nilfs_btree_get_nonroot_node(path, level);
584 if (nilfs_btree_bad_node(btree, node, level))
593 WARN_ON(found || level != NILFS_BTREE_LEVEL_NODE_MIN);
597 path[level].bp_index = index;
614 int index, level, ncmax, ret;
620 level = nilfs_btree_node_get_level(node);
623 path[level].bp_bh = NULL;
624 path[level].bp_index = index;
627 for (level--; level > 0; level--) {
628 ret = nilfs_btree_get_block(btree, ptr, &path[level].bp_bh);
631 node = nilfs_btree_get_nonroot_node(path, level);
632 if (nilfs_btree_bad_node(btree, node, level))
636 path[level].bp_index = index;
651 * @minlevel: start level
663 int index, next_adj, level;
667 for (level = minlevel; level <= maxlevel; level++) {
668 if (level == maxlevel)
671 node = nilfs_btree_get_nonroot_node(path, level);
673 index = path[level].bp_index + next_adj;
686 __u64 key, int level, __u64 *ptrp)
695 ret = nilfs_btree_do_lookup(btree, path, key, ptrp, level, 0);
711 int level = NILFS_BTREE_LEVEL_NODE_MIN;
719 ret = nilfs_btree_do_lookup(btree, path, key, &ptr, level, 1);
735 node = nilfs_btree_get_node(btree, path, level, &ncmax);
736 index = path[level].bp_index + 1;
753 if (level == maxlevel)
757 p.node = nilfs_btree_get_node(btree, path, level + 1, &p.ncmax);
758 p.index = path[level + 1].bp_index + 1;
764 path[level + 1].bp_index = p.index;
766 brelse(path[level].bp_bh);
767 path[level].bp_bh = NULL;
769 ret = __nilfs_btree_get_block(btree, ptr2, &path[level].bp_bh,
773 node = nilfs_btree_get_nonroot_node(path, level);
776 path[level].bp_index = index;
788 int level, __u64 key)
790 if (level < nilfs_btree_height(btree) - 1) {
793 nilfs_btree_get_nonroot_node(path, level),
794 path[level].bp_index, key);
795 if (!buffer_dirty(path[level].bp_bh))
796 mark_buffer_dirty(path[level].bp_bh);
797 } while ((path[level].bp_index == 0) &&
798 (++level < nilfs_btree_height(btree) - 1));
802 if (level == nilfs_btree_height(btree) - 1) {
804 path[level].bp_index, key);
810 int level, __u64 *keyp, __u64 *ptrp)
815 if (level < nilfs_btree_height(btree) - 1) {
816 node = nilfs_btree_get_nonroot_node(path, level);
818 nilfs_btree_node_insert(node, path[level].bp_index,
820 if (!buffer_dirty(path[level].bp_bh))
821 mark_buffer_dirty(path[level].bp_bh);
823 if (path[level].bp_index == 0)
824 nilfs_btree_promote_key(btree, path, level + 1,
829 nilfs_btree_node_insert(node, path[level].bp_index,
837 int level, __u64 *keyp, __u64 *ptrp)
842 node = nilfs_btree_get_nonroot_node(path, level);
843 left = nilfs_btree_get_sib_node(path, level);
850 if (n > path[level].bp_index) {
858 if (!buffer_dirty(path[level].bp_bh))
859 mark_buffer_dirty(path[level].bp_bh);
860 if (!buffer_dirty(path[level].bp_sib_bh))
861 mark_buffer_dirty(path[level].bp_sib_bh);
863 nilfs_btree_promote_key(btree, path, level + 1,
867 brelse(path[level].bp_bh);
868 path[level].bp_bh = path[level].bp_sib_bh;
869 path[level].bp_sib_bh = NULL;
870 path[level].bp_index += lnchildren;
871 path[level + 1].bp_index--;
873 brelse(path[level].bp_sib_bh);
874 path[level].bp_sib_bh = NULL;
875 path[level].bp_index -= n;
878 nilfs_btree_do_insert(btree, path, level, keyp, ptrp);
883 int level, __u64 *keyp, __u64 *ptrp)
888 node = nilfs_btree_get_nonroot_node(path, level);
889 right = nilfs_btree_get_sib_node(path, level);
896 if (n > nchildren - path[level].bp_index) {
904 if (!buffer_dirty(path[level].bp_bh))
905 mark_buffer_dirty(path[level].bp_bh);
906 if (!buffer_dirty(path[level].bp_sib_bh))
907 mark_buffer_dirty(path[level].bp_sib_bh);
909 path[level + 1].bp_index++;
910 nilfs_btree_promote_key(btree, path, level + 1,
912 path[level + 1].bp_index--;
915 brelse(path[level].bp_bh);
916 path[level].bp_bh = path[level].bp_sib_bh;
917 path[level].bp_sib_bh = NULL;
918 path[level].bp_index -= nilfs_btree_node_get_nchildren(node);
919 path[level + 1].bp_index++;
921 brelse(path[level].bp_sib_bh);
922 path[level].bp_sib_bh = NULL;
925 nilfs_btree_do_insert(btree, path, level, keyp, ptrp);
930 int level, __u64 *keyp, __u64 *ptrp)
935 node = nilfs_btree_get_nonroot_node(path, level);
936 right = nilfs_btree_get_sib_node(path, level);
942 if (n > nchildren - path[level].bp_index) {
949 if (!buffer_dirty(path[level].bp_bh))
950 mark_buffer_dirty(path[level].bp_bh);
951 if (!buffer_dirty(path[level].bp_sib_bh))
952 mark_buffer_dirty(path[level].bp_sib_bh);
955 path[level].bp_index -= nilfs_btree_node_get_nchildren(node);
956 nilfs_btree_node_insert(right, path[level].bp_index,
960 *ptrp = path[level].bp_newreq.bpr_ptr;
962 brelse(path[level].bp_bh);
963 path[level].bp_bh = path[level].bp_sib_bh;
964 path[level].bp_sib_bh = NULL;
966 nilfs_btree_do_insert(btree, path, level, keyp, ptrp);
969 *ptrp = path[level].bp_newreq.bpr_ptr;
971 brelse(path[level].bp_sib_bh);
972 path[level].bp_sib_bh = NULL;
975 path[level + 1].bp_index++;
980 int level, __u64 *keyp, __u64 *ptrp)
986 child = nilfs_btree_get_sib_node(path, level);
993 nilfs_btree_node_set_level(root, level + 1);
995 if (!buffer_dirty(path[level].bp_sib_bh))
996 mark_buffer_dirty(path[level].bp_sib_bh);
998 path[level].bp_bh = path[level].bp_sib_bh;
999 path[level].bp_sib_bh = NULL;
1001 nilfs_btree_do_insert(btree, path, level, keyp, ptrp);
1004 *ptrp = path[level].bp_newreq.bpr_ptr;
1011 int level, ncmax;
1017 level = NILFS_BTREE_LEVEL_NODE_MIN;
1018 if (path[level].bp_index > 0) {
1019 node = nilfs_btree_get_node(btree, path, level, &ncmax);
1021 path[level].bp_index - 1,
1026 level = NILFS_BTREE_LEVEL_NODE_MIN + 1;
1027 if (level <= nilfs_btree_height(btree) - 1) {
1028 node = nilfs_btree_get_node(btree, path, level, &ncmax);
1029 return nilfs_btree_node_get_ptr(node, path[level].bp_index,
1064 int pindex, level, ncmax, ncblk, ret;
1068 level = NILFS_BTREE_LEVEL_DATA;
1072 path[level].bp_newreq.bpr_ptr =
1077 ret = nilfs_bmap_prepare_alloc_ptr(btree, &path[level].bp_newreq, dat);
1083 for (level = NILFS_BTREE_LEVEL_NODE_MIN;
1084 level < nilfs_btree_height(btree) - 1;
1085 level++) {
1086 node = nilfs_btree_get_nonroot_node(path, level);
1088 path[level].bp_op = nilfs_btree_do_insert;
1093 parent = nilfs_btree_get_node(btree, path, level + 1, &ncmax);
1094 pindex = path[level + 1].bp_index;
1105 path[level].bp_sib_bh = bh;
1106 path[level].bp_op = nilfs_btree_carry_left;
1123 path[level].bp_sib_bh = bh;
1124 path[level].bp_op = nilfs_btree_carry_right;
1133 path[level].bp_newreq.bpr_ptr =
1134 path[level - 1].bp_newreq.bpr_ptr + 1;
1136 &path[level].bp_newreq, dat);
1140 path[level].bp_newreq.bpr_ptr,
1148 nilfs_btree_node_init(sib, 0, level, 0, ncblk, NULL, NULL);
1149 path[level].bp_sib_bh = bh;
1150 path[level].bp_op = nilfs_btree_split;
1157 path[level].bp_op = nilfs_btree_do_insert;
1163 path[level].bp_newreq.bpr_ptr = path[level - 1].bp_newreq.bpr_ptr + 1;
1164 ret = nilfs_bmap_prepare_alloc_ptr(btree, &path[level].bp_newreq, dat);
1167 ret = nilfs_btree_get_new_block(btree, path[level].bp_newreq.bpr_ptr,
1173 0, level, 0, ncblk, NULL, NULL);
1174 path[level].bp_sib_bh = bh;
1175 path[level].bp_op = nilfs_btree_grow;
1177 level++;
1178 path[level].bp_op = nilfs_btree_do_insert;
1185 *levelp = level;
1190 nilfs_bmap_abort_alloc_ptr(btree, &path[level].bp_newreq, dat);
1192 for (level--; level > NILFS_BTREE_LEVEL_DATA; level--) {
1193 nilfs_btnode_delete(path[level].bp_sib_bh);
1194 nilfs_bmap_abort_alloc_ptr(btree, &path[level].bp_newreq, dat);
1198 nilfs_bmap_abort_alloc_ptr(btree, &path[level].bp_newreq, dat);
1200 *levelp = level;
1210 int level;
1219 for (level = NILFS_BTREE_LEVEL_NODE_MIN; level <= maxlevel; level++) {
1221 &path[level - 1].bp_newreq, dat);
1222 path[level].bp_op(btree, path, level, &key, &ptr);
1233 int level, ret;
1247 ret = nilfs_btree_prepare_insert(btree, path, &level, key, ptr, &stats);
1250 nilfs_btree_commit_insert(btree, path, level, key, ptr);
1260 int level, __u64 *keyp, __u64 *ptrp)
1265 if (level < nilfs_btree_height(btree) - 1) {
1266 node = nilfs_btree_get_nonroot_node(path, level);
1268 nilfs_btree_node_delete(node, path[level].bp_index,
1270 if (!buffer_dirty(path[level].bp_bh))
1271 mark_buffer_dirty(path[level].bp_bh);
1272 if (path[level].bp_index == 0)
1273 nilfs_btree_promote_key(btree, path, level + 1,
1277 nilfs_btree_node_delete(node, path[level].bp_index,
1285 int level, __u64 *keyp, __u64 *ptrp)
1290 nilfs_btree_do_delete(btree, path, level, keyp, ptrp);
1292 node = nilfs_btree_get_nonroot_node(path, level);
1293 left = nilfs_btree_get_sib_node(path, level);
1302 if (!buffer_dirty(path[level].bp_bh))
1303 mark_buffer_dirty(path[level].bp_bh);
1304 if (!buffer_dirty(path[level].bp_sib_bh))
1305 mark_buffer_dirty(path[level].bp_sib_bh);
1307 nilfs_btree_promote_key(btree, path, level + 1,
1310 brelse(path[level].bp_sib_bh);
1311 path[level].bp_sib_bh = NULL;
1312 path[level].bp_index += n;
1317 int level, __u64 *keyp, __u64 *ptrp)
1322 nilfs_btree_do_delete(btree, path, level, keyp, ptrp);
1324 node = nilfs_btree_get_nonroot_node(path, level);
1325 right = nilfs_btree_get_sib_node(path, level);
1334 if (!buffer_dirty(path[level].bp_bh))
1335 mark_buffer_dirty(path[level].bp_bh);
1336 if (!buffer_dirty(path[level].bp_sib_bh))
1337 mark_buffer_dirty(path[level].bp_sib_bh);
1339 path[level + 1].bp_index++;
1340 nilfs_btree_promote_key(btree, path, level + 1,
1342 path[level + 1].bp_index--;
1344 brelse(path[level].bp_sib_bh);
1345 path[level].bp_sib_bh = NULL;
1350 int level, __u64 *keyp, __u64 *ptrp)
1355 nilfs_btree_do_delete(btree, path, level, keyp, ptrp);
1357 node = nilfs_btree_get_nonroot_node(path, level);
1358 left = nilfs_btree_get_sib_node(path, level);
1365 if (!buffer_dirty(path[level].bp_sib_bh))
1366 mark_buffer_dirty(path[level].bp_sib_bh);
1368 nilfs_btnode_delete(path[level].bp_bh);
1369 path[level].bp_bh = path[level].bp_sib_bh;
1370 path[level].bp_sib_bh = NULL;
1371 path[level].bp_index += nilfs_btree_node_get_nchildren(left);
1376 int level, __u64 *keyp, __u64 *ptrp)
1381 nilfs_btree_do_delete(btree, path, level, keyp, ptrp);
1383 node = nilfs_btree_get_nonroot_node(path, level);
1384 right = nilfs_btree_get_sib_node(path, level);
1391 if (!buffer_dirty(path[level].bp_bh))
1392 mark_buffer_dirty(path[level].bp_bh);
1394 nilfs_btnode_delete(path[level].bp_sib_bh);
1395 path[level].bp_sib_bh = NULL;
1396 path[level + 1].bp_index++;
1401 int level, __u64 *keyp, __u64 *ptrp)
1406 nilfs_btree_do_delete(btree, path, level, keyp, ptrp);
1409 child = nilfs_btree_get_nonroot_node(path, level);
1414 nilfs_btree_node_set_level(root, level);
1419 nilfs_btnode_delete(path[level].bp_bh);
1420 path[level].bp_bh = NULL;
1425 int level, __u64 *keyp, __u64 *ptrp)
1438 int pindex, dindex, level, ncmin, ncmax, ncblk, ret;
1445 for (level = NILFS_BTREE_LEVEL_NODE_MIN, dindex = path[level].bp_index;
1446 level < nilfs_btree_height(btree) - 1;
1447 level++) {
1448 node = nilfs_btree_get_nonroot_node(path, level);
1449 path[level].bp_oldreq.bpr_ptr =
1452 &path[level].bp_oldreq, dat);
1457 path[level].bp_op = nilfs_btree_do_delete;
1462 parent = nilfs_btree_get_node(btree, path, level + 1, &ncmax);
1463 pindex = path[level + 1].bp_index;
1475 path[level].bp_sib_bh = bh;
1476 path[level].bp_op = nilfs_btree_borrow_left;
1480 path[level].bp_sib_bh = bh;
1481 path[level].bp_op = nilfs_btree_concat_left;
1495 path[level].bp_sib_bh = bh;
1496 path[level].bp_op = nilfs_btree_borrow_right;
1500 path[level].bp_sib_bh = bh;
1501 path[level].bp_op = nilfs_btree_concat_right;
1516 WARN_ON(level != nilfs_btree_height(btree) - 2);
1519 path[level].bp_op = nilfs_btree_shrink;
1521 level++;
1522 path[level].bp_op = nilfs_btree_nop;
1525 path[level].bp_op = nilfs_btree_do_delete;
1533 path[level].bp_op = nilfs_btree_do_delete;
1538 path[level].bp_oldreq.bpr_ptr =
1542 ret = nilfs_bmap_prepare_end_ptr(btree, &path[level].bp_oldreq, dat);
1548 *levelp = level;
1553 nilfs_bmap_abort_end_ptr(btree, &path[level].bp_oldreq, dat);
1555 for (level--; level >= NILFS_BTREE_LEVEL_NODE_MIN; level--) {
1556 brelse(path[level].bp_sib_bh);
1557 nilfs_bmap_abort_end_ptr(btree, &path[level].bp_oldreq, dat);
1559 *levelp = level;
1568 int level;
1570 for (level = NILFS_BTREE_LEVEL_NODE_MIN; level <= maxlevel; level++) {
1571 nilfs_bmap_commit_end_ptr(btree, &path[level].bp_oldreq, dat);
1572 path[level].bp_op(btree, path, level, NULL, NULL);
1585 int level, ret;
1599 ret = nilfs_btree_prepare_delete(btree, path, &level, &stats, dat);
1602 nilfs_btree_commit_delete(btree, path, level, dat);
1818 /* create child node at level 1 */
1830 /* create root node at level 2 */
1839 /* create root node at level 1 */
1897 int level,
1900 while ((++level < nilfs_btree_height(btree) - 1) &&
1901 !buffer_dirty(path[level].bp_bh))
1902 mark_buffer_dirty(path[level].bp_bh);
1909 int level, struct inode *dat)
1914 parent = nilfs_btree_get_node(btree, path, level + 1, &ncmax);
1915 path[level].bp_oldreq.bpr_ptr =
1916 nilfs_btree_node_get_ptr(parent, path[level + 1].bp_index,
1918 path[level].bp_newreq.bpr_ptr = path[level].bp_oldreq.bpr_ptr + 1;
1919 ret = nilfs_dat_prepare_update(dat, &path[level].bp_oldreq.bpr_req,
1920 &path[level].bp_newreq.bpr_req);
1924 if (buffer_nilfs_node(path[level].bp_bh)) {
1925 path[level].bp_ctxt.oldkey = path[level].bp_oldreq.bpr_ptr;
1926 path[level].bp_ctxt.newkey = path[level].bp_newreq.bpr_ptr;
1927 path[level].bp_ctxt.bh = path[level].bp_bh;
1930 &path[level].bp_ctxt);
1933 &path[level].bp_oldreq.bpr_req,
1934 &path[level].bp_newreq.bpr_req);
1944 int level, struct inode *dat)
1949 nilfs_dat_commit_update(dat, &path[level].bp_oldreq.bpr_req,
1950 &path[level].bp_newreq.bpr_req,
1953 if (buffer_nilfs_node(path[level].bp_bh)) {
1956 &path[level].bp_ctxt);
1957 path[level].bp_bh = path[level].bp_ctxt.bh;
1959 set_buffer_nilfs_volatile(path[level].bp_bh);
1961 parent = nilfs_btree_get_node(btree, path, level + 1, &ncmax);
1962 nilfs_btree_node_set_ptr(parent, path[level + 1].bp_index,
1963 path[level].bp_newreq.bpr_ptr, ncmax);
1968 int level, struct inode *dat)
1970 nilfs_dat_abort_update(dat, &path[level].bp_oldreq.bpr_req,
1971 &path[level].bp_newreq.bpr_req);
1972 if (buffer_nilfs_node(path[level].bp_bh))
1975 &path[level].bp_ctxt);
1983 int level, ret;
1985 level = minlevel;
1986 if (!buffer_nilfs_volatile(path[level].bp_bh)) {
1987 ret = nilfs_btree_prepare_update_v(btree, path, level, dat);
1991 while ((++level < nilfs_btree_height(btree) - 1) &&
1992 !buffer_dirty(path[level].bp_bh)) {
1994 WARN_ON(buffer_nilfs_volatile(path[level].bp_bh));
1995 ret = nilfs_btree_prepare_update_v(btree, path, level, dat);
2001 *maxlevelp = level - 1;
2006 while (--level > minlevel)
2007 nilfs_btree_abort_update_v(btree, path, level, dat);
2008 if (!buffer_nilfs_volatile(path[level].bp_bh))
2009 nilfs_btree_abort_update_v(btree, path, level, dat);
2019 int level;
2024 for (level = minlevel + 1; level <= maxlevel; level++)
2025 nilfs_btree_commit_update_v(btree, path, level, dat);
2030 int level, struct buffer_head *bh)
2039 path[level].bp_bh = bh;
2040 ret = nilfs_btree_prepare_propagate_v(btree, path, level, &maxlevel,
2045 if (buffer_nilfs_volatile(path[level].bp_bh)) {
2046 parent = nilfs_btree_get_node(btree, path, level + 1, &ncmax);
2048 path[level + 1].bp_index,
2055 nilfs_btree_commit_propagate_v(btree, path, level, maxlevel, bh, dat);
2058 brelse(path[level].bp_bh);
2059 path[level].bp_bh = NULL;
2069 int level, ret;
2080 level = nilfs_btree_node_get_level(node);
2083 level = NILFS_BTREE_LEVEL_DATA;
2086 ret = nilfs_btree_do_lookup(btree, path, key, NULL, level + 1, 0);
2090 "writing node/leaf block does not appear in b-tree (ino=%lu) at key=%llu, level=%d",
2092 (unsigned long long)key, level);
2097 nilfs_btree_propagate_v(btree, path, level, bh) :
2098 nilfs_btree_propagate_p(btree, path, level, bh);
2120 int level;
2125 level = nilfs_btree_node_get_level(node);
2126 if (level < NILFS_BTREE_LEVEL_NODE_MIN ||
2127 level >= NILFS_BTREE_LEVEL_MAX) {
2130 "invalid btree level: %d (key=%llu, ino=%lu, blocknr=%llu)",
2131 level, (unsigned long long)key,
2137 list_for_each(head, &lists[level]) {
2156 int level, i;
2158 for (level = NILFS_BTREE_LEVEL_NODE_MIN;
2159 level < NILFS_BTREE_LEVEL_MAX;
2160 level++)
2161 INIT_LIST_HEAD(&lists[level]);
2179 for (level = NILFS_BTREE_LEVEL_NODE_MIN;
2180 level < NILFS_BTREE_LEVEL_MAX;
2181 level++)
2182 list_splice_tail(&lists[level], listp);
2187 int level,
2197 parent = nilfs_btree_get_node(btree, path, level + 1, &ncmax);
2198 ptr = nilfs_btree_node_get_ptr(parent, path[level + 1].bp_index,
2201 path[level].bp_ctxt.oldkey = ptr;
2202 path[level].bp_ctxt.newkey = blocknr;
2203 path[level].bp_ctxt.bh = *bh;
2206 &path[level].bp_ctxt);
2211 &path[level].bp_ctxt);
2212 *bh = path[level].bp_ctxt.bh;
2215 nilfs_btree_node_set_ptr(parent, path[level + 1].bp_index, blocknr,
2218 key = nilfs_btree_node_get_key(parent, path[level + 1].bp_index);
2221 binfo->bi_dat.bi_level = level;
2229 int level,
2241 parent = nilfs_btree_get_node(btree, path, level + 1, &ncmax);
2242 ptr = nilfs_btree_node_get_ptr(parent, path[level + 1].bp_index,
2250 key = nilfs_btree_node_get_key(parent, path[level + 1].bp_index);
2266 int level, ret;
2275 level = nilfs_btree_node_get_level(node);
2278 level = NILFS_BTREE_LEVEL_DATA;
2281 ret = nilfs_btree_do_lookup(btree, path, key, NULL, level + 1, 0);
2288 nilfs_btree_assign_v(btree, path, level, bh, blocknr, binfo) :
2289 nilfs_btree_assign_p(btree, path, level, bh, blocknr, binfo);
2324 static int nilfs_btree_mark(struct nilfs_bmap *btree, __u64 key, int level)
2335 ret = nilfs_btree_do_lookup(btree, path, key, &ptr, level + 1, 0);