• Home
  • Raw
  • Download

Lines Matching full:path

25 	struct nilfs_btree_path *path;  in nilfs_btree_alloc_path()  local
28 path = kmem_cache_alloc(nilfs_btree_path_cache, GFP_NOFS); in nilfs_btree_alloc_path()
29 if (path == NULL) in nilfs_btree_alloc_path()
33 path[level].bp_bh = NULL; in nilfs_btree_alloc_path()
34 path[level].bp_sib_bh = NULL; in nilfs_btree_alloc_path()
35 path[level].bp_index = 0; in nilfs_btree_alloc_path()
36 path[level].bp_oldreq.bpr_ptr = NILFS_BMAP_INVALID_PTR; in nilfs_btree_alloc_path()
37 path[level].bp_newreq.bpr_ptr = NILFS_BMAP_INVALID_PTR; in nilfs_btree_alloc_path()
38 path[level].bp_op = NULL; in nilfs_btree_alloc_path()
42 return path; in nilfs_btree_alloc_path()
45 static void nilfs_btree_free_path(struct nilfs_btree_path *path) in nilfs_btree_free_path() argument
50 brelse(path[level].bp_bh); in nilfs_btree_free_path()
52 kmem_cache_free(nilfs_btree_path_cache, path); in nilfs_btree_free_path()
416 nilfs_btree_get_nonroot_node(const struct nilfs_btree_path *path, int level) in nilfs_btree_get_nonroot_node() argument
418 return (struct nilfs_btree_node *)path[level].bp_bh->b_data; in nilfs_btree_get_nonroot_node()
422 nilfs_btree_get_sib_node(const struct nilfs_btree_path *path, int level) in nilfs_btree_get_sib_node() argument
424 return (struct nilfs_btree_node *)path[level].bp_sib_bh->b_data; in nilfs_btree_get_sib_node()
434 const struct nilfs_btree_path *path, in nilfs_btree_get_node() argument
443 node = nilfs_btree_get_nonroot_node(path, level); in nilfs_btree_get_node()
547 struct nilfs_btree_path *path, in nilfs_btree_do_lookup() argument
564 path[level].bp_bh = NULL; in nilfs_btree_do_lookup()
565 path[level].bp_index = index; in nilfs_btree_do_lookup()
572 p.node = nilfs_btree_get_node(btree, path, level + 1, in nilfs_btree_do_lookup()
578 ret = __nilfs_btree_get_block(btree, ptr, &path[level].bp_bh, in nilfs_btree_do_lookup()
583 node = nilfs_btree_get_nonroot_node(path, level); in nilfs_btree_do_lookup()
597 path[level].bp_index = index; in nilfs_btree_do_lookup()
609 struct nilfs_btree_path *path, in nilfs_btree_do_lookup_last() argument
623 path[level].bp_bh = NULL; in nilfs_btree_do_lookup_last()
624 path[level].bp_index = index; in nilfs_btree_do_lookup_last()
628 ret = nilfs_btree_get_block(btree, ptr, &path[level].bp_bh); in nilfs_btree_do_lookup_last()
631 node = nilfs_btree_get_nonroot_node(path, level); in nilfs_btree_do_lookup_last()
636 path[level].bp_index = index; in nilfs_btree_do_lookup_last()
648 * nilfs_btree_get_next_key - get next valid key from btree path array
650 * @path: array of nilfs_btree_path struct
658 const struct nilfs_btree_path *path, in nilfs_btree_get_next_key() argument
671 node = nilfs_btree_get_nonroot_node(path, level); in nilfs_btree_get_next_key()
673 index = path[level].bp_index + next_adj; in nilfs_btree_get_next_key()
688 struct nilfs_btree_path *path; in nilfs_btree_lookup() local
691 path = nilfs_btree_alloc_path(); in nilfs_btree_lookup()
692 if (path == NULL) in nilfs_btree_lookup()
695 ret = nilfs_btree_do_lookup(btree, path, key, ptrp, level, 0); in nilfs_btree_lookup()
697 nilfs_btree_free_path(path); in nilfs_btree_lookup()
706 struct nilfs_btree_path *path; in nilfs_btree_lookup_contig() local
715 path = nilfs_btree_alloc_path(); in nilfs_btree_lookup_contig()
716 if (path == NULL) in nilfs_btree_lookup_contig()
719 ret = nilfs_btree_do_lookup(btree, path, key, &ptr, level, 1); in nilfs_btree_lookup_contig()
735 node = nilfs_btree_get_node(btree, path, level, &ncmax); in nilfs_btree_lookup_contig()
736 index = path[level].bp_index + 1; in nilfs_btree_lookup_contig()
758 p.node = nilfs_btree_get_node(btree, path, level + 1, &p.ncmax); in nilfs_btree_lookup_contig()
759 p.index = path[level + 1].bp_index + 1; in nilfs_btree_lookup_contig()
765 path[level + 1].bp_index = p.index; in nilfs_btree_lookup_contig()
767 brelse(path[level].bp_bh); in nilfs_btree_lookup_contig()
768 path[level].bp_bh = NULL; in nilfs_btree_lookup_contig()
770 ret = __nilfs_btree_get_block(btree, ptr2, &path[level].bp_bh, in nilfs_btree_lookup_contig()
774 node = nilfs_btree_get_nonroot_node(path, level); in nilfs_btree_lookup_contig()
777 path[level].bp_index = index; in nilfs_btree_lookup_contig()
783 nilfs_btree_free_path(path); in nilfs_btree_lookup_contig()
788 struct nilfs_btree_path *path, in nilfs_btree_promote_key() argument
794 nilfs_btree_get_nonroot_node(path, level), in nilfs_btree_promote_key()
795 path[level].bp_index, key); in nilfs_btree_promote_key()
796 if (!buffer_dirty(path[level].bp_bh)) in nilfs_btree_promote_key()
797 mark_buffer_dirty(path[level].bp_bh); in nilfs_btree_promote_key()
798 } while ((path[level].bp_index == 0) && in nilfs_btree_promote_key()
805 path[level].bp_index, key); in nilfs_btree_promote_key()
810 struct nilfs_btree_path *path, in nilfs_btree_do_insert() argument
817 node = nilfs_btree_get_nonroot_node(path, level); in nilfs_btree_do_insert()
819 nilfs_btree_node_insert(node, path[level].bp_index, in nilfs_btree_do_insert()
821 if (!buffer_dirty(path[level].bp_bh)) in nilfs_btree_do_insert()
822 mark_buffer_dirty(path[level].bp_bh); in nilfs_btree_do_insert()
824 if (path[level].bp_index == 0) in nilfs_btree_do_insert()
825 nilfs_btree_promote_key(btree, path, level + 1, in nilfs_btree_do_insert()
830 nilfs_btree_node_insert(node, path[level].bp_index, in nilfs_btree_do_insert()
837 struct nilfs_btree_path *path, in nilfs_btree_carry_left() argument
843 node = nilfs_btree_get_nonroot_node(path, level); in nilfs_btree_carry_left()
844 left = nilfs_btree_get_sib_node(path, level); in nilfs_btree_carry_left()
851 if (n > path[level].bp_index) { in nilfs_btree_carry_left()
859 if (!buffer_dirty(path[level].bp_bh)) in nilfs_btree_carry_left()
860 mark_buffer_dirty(path[level].bp_bh); in nilfs_btree_carry_left()
861 if (!buffer_dirty(path[level].bp_sib_bh)) in nilfs_btree_carry_left()
862 mark_buffer_dirty(path[level].bp_sib_bh); in nilfs_btree_carry_left()
864 nilfs_btree_promote_key(btree, path, level + 1, in nilfs_btree_carry_left()
868 brelse(path[level].bp_bh); in nilfs_btree_carry_left()
869 path[level].bp_bh = path[level].bp_sib_bh; in nilfs_btree_carry_left()
870 path[level].bp_sib_bh = NULL; in nilfs_btree_carry_left()
871 path[level].bp_index += lnchildren; in nilfs_btree_carry_left()
872 path[level + 1].bp_index--; in nilfs_btree_carry_left()
874 brelse(path[level].bp_sib_bh); in nilfs_btree_carry_left()
875 path[level].bp_sib_bh = NULL; in nilfs_btree_carry_left()
876 path[level].bp_index -= n; in nilfs_btree_carry_left()
879 nilfs_btree_do_insert(btree, path, level, keyp, ptrp); in nilfs_btree_carry_left()
883 struct nilfs_btree_path *path, in nilfs_btree_carry_right() argument
889 node = nilfs_btree_get_nonroot_node(path, level); in nilfs_btree_carry_right()
890 right = nilfs_btree_get_sib_node(path, level); in nilfs_btree_carry_right()
897 if (n > nchildren - path[level].bp_index) { in nilfs_btree_carry_right()
905 if (!buffer_dirty(path[level].bp_bh)) in nilfs_btree_carry_right()
906 mark_buffer_dirty(path[level].bp_bh); in nilfs_btree_carry_right()
907 if (!buffer_dirty(path[level].bp_sib_bh)) in nilfs_btree_carry_right()
908 mark_buffer_dirty(path[level].bp_sib_bh); in nilfs_btree_carry_right()
910 path[level + 1].bp_index++; in nilfs_btree_carry_right()
911 nilfs_btree_promote_key(btree, path, level + 1, in nilfs_btree_carry_right()
913 path[level + 1].bp_index--; in nilfs_btree_carry_right()
916 brelse(path[level].bp_bh); in nilfs_btree_carry_right()
917 path[level].bp_bh = path[level].bp_sib_bh; in nilfs_btree_carry_right()
918 path[level].bp_sib_bh = NULL; in nilfs_btree_carry_right()
919 path[level].bp_index -= nilfs_btree_node_get_nchildren(node); in nilfs_btree_carry_right()
920 path[level + 1].bp_index++; in nilfs_btree_carry_right()
922 brelse(path[level].bp_sib_bh); in nilfs_btree_carry_right()
923 path[level].bp_sib_bh = NULL; in nilfs_btree_carry_right()
926 nilfs_btree_do_insert(btree, path, level, keyp, ptrp); in nilfs_btree_carry_right()
930 struct nilfs_btree_path *path, in nilfs_btree_split() argument
936 node = nilfs_btree_get_nonroot_node(path, level); in nilfs_btree_split()
937 right = nilfs_btree_get_sib_node(path, level); in nilfs_btree_split()
943 if (n > nchildren - path[level].bp_index) { in nilfs_btree_split()
950 if (!buffer_dirty(path[level].bp_bh)) in nilfs_btree_split()
951 mark_buffer_dirty(path[level].bp_bh); in nilfs_btree_split()
952 if (!buffer_dirty(path[level].bp_sib_bh)) in nilfs_btree_split()
953 mark_buffer_dirty(path[level].bp_sib_bh); in nilfs_btree_split()
956 path[level].bp_index -= nilfs_btree_node_get_nchildren(node); in nilfs_btree_split()
957 nilfs_btree_node_insert(right, path[level].bp_index, in nilfs_btree_split()
961 *ptrp = path[level].bp_newreq.bpr_ptr; in nilfs_btree_split()
963 brelse(path[level].bp_bh); in nilfs_btree_split()
964 path[level].bp_bh = path[level].bp_sib_bh; in nilfs_btree_split()
965 path[level].bp_sib_bh = NULL; in nilfs_btree_split()
967 nilfs_btree_do_insert(btree, path, level, keyp, ptrp); in nilfs_btree_split()
970 *ptrp = path[level].bp_newreq.bpr_ptr; in nilfs_btree_split()
972 brelse(path[level].bp_sib_bh); in nilfs_btree_split()
973 path[level].bp_sib_bh = NULL; in nilfs_btree_split()
976 path[level + 1].bp_index++; in nilfs_btree_split()
980 struct nilfs_btree_path *path, in nilfs_btree_grow() argument
987 child = nilfs_btree_get_sib_node(path, level); in nilfs_btree_grow()
996 if (!buffer_dirty(path[level].bp_sib_bh)) in nilfs_btree_grow()
997 mark_buffer_dirty(path[level].bp_sib_bh); in nilfs_btree_grow()
999 path[level].bp_bh = path[level].bp_sib_bh; in nilfs_btree_grow()
1000 path[level].bp_sib_bh = NULL; in nilfs_btree_grow()
1002 nilfs_btree_do_insert(btree, path, level, keyp, ptrp); in nilfs_btree_grow()
1005 *ptrp = path[level].bp_newreq.bpr_ptr; in nilfs_btree_grow()
1009 const struct nilfs_btree_path *path) in nilfs_btree_find_near() argument
1014 if (path == NULL) in nilfs_btree_find_near()
1019 if (path[level].bp_index > 0) { in nilfs_btree_find_near()
1020 node = nilfs_btree_get_node(btree, path, level, &ncmax); in nilfs_btree_find_near()
1022 path[level].bp_index - 1, in nilfs_btree_find_near()
1029 node = nilfs_btree_get_node(btree, path, level, &ncmax); in nilfs_btree_find_near()
1030 return nilfs_btree_node_get_ptr(node, path[level].bp_index, in nilfs_btree_find_near()
1038 const struct nilfs_btree_path *path, in nilfs_btree_find_target_v() argument
1048 ptr = nilfs_btree_find_near(btree, path); in nilfs_btree_find_target_v()
1058 struct nilfs_btree_path *path, in nilfs_btree_prepare_insert() argument
1073 path[level].bp_newreq.bpr_ptr = in nilfs_btree_prepare_insert()
1074 nilfs_btree_find_target_v(btree, path, key); in nilfs_btree_prepare_insert()
1078 ret = nilfs_bmap_prepare_alloc_ptr(btree, &path[level].bp_newreq, dat); in nilfs_btree_prepare_insert()
1087 node = nilfs_btree_get_nonroot_node(path, level); in nilfs_btree_prepare_insert()
1089 path[level].bp_op = nilfs_btree_do_insert; in nilfs_btree_prepare_insert()
1094 parent = nilfs_btree_get_node(btree, path, level + 1, &ncmax); in nilfs_btree_prepare_insert()
1095 pindex = path[level + 1].bp_index; in nilfs_btree_prepare_insert()
1106 path[level].bp_sib_bh = bh; in nilfs_btree_prepare_insert()
1107 path[level].bp_op = nilfs_btree_carry_left; in nilfs_btree_prepare_insert()
1124 path[level].bp_sib_bh = bh; in nilfs_btree_prepare_insert()
1125 path[level].bp_op = nilfs_btree_carry_right; in nilfs_btree_prepare_insert()
1134 path[level].bp_newreq.bpr_ptr = in nilfs_btree_prepare_insert()
1135 path[level - 1].bp_newreq.bpr_ptr + 1; in nilfs_btree_prepare_insert()
1137 &path[level].bp_newreq, dat); in nilfs_btree_prepare_insert()
1141 path[level].bp_newreq.bpr_ptr, in nilfs_btree_prepare_insert()
1150 path[level].bp_sib_bh = bh; in nilfs_btree_prepare_insert()
1151 path[level].bp_op = nilfs_btree_split; in nilfs_btree_prepare_insert()
1158 path[level].bp_op = nilfs_btree_do_insert; in nilfs_btree_prepare_insert()
1164 path[level].bp_newreq.bpr_ptr = path[level - 1].bp_newreq.bpr_ptr + 1; in nilfs_btree_prepare_insert()
1165 ret = nilfs_bmap_prepare_alloc_ptr(btree, &path[level].bp_newreq, dat); in nilfs_btree_prepare_insert()
1168 ret = nilfs_btree_get_new_block(btree, path[level].bp_newreq.bpr_ptr, in nilfs_btree_prepare_insert()
1175 path[level].bp_sib_bh = bh; in nilfs_btree_prepare_insert()
1176 path[level].bp_op = nilfs_btree_grow; in nilfs_btree_prepare_insert()
1179 path[level].bp_op = nilfs_btree_do_insert; in nilfs_btree_prepare_insert()
1191 nilfs_bmap_abort_alloc_ptr(btree, &path[level].bp_newreq, dat); in nilfs_btree_prepare_insert()
1194 nilfs_btnode_delete(path[level].bp_sib_bh); in nilfs_btree_prepare_insert()
1195 nilfs_bmap_abort_alloc_ptr(btree, &path[level].bp_newreq, dat); in nilfs_btree_prepare_insert()
1199 nilfs_bmap_abort_alloc_ptr(btree, &path[level].bp_newreq, dat); in nilfs_btree_prepare_insert()
1207 struct nilfs_btree_path *path, in nilfs_btree_commit_insert() argument
1214 ptr = path[NILFS_BTREE_LEVEL_DATA].bp_newreq.bpr_ptr; in nilfs_btree_commit_insert()
1222 &path[level - 1].bp_newreq, dat); in nilfs_btree_commit_insert()
1223 path[level].bp_op(btree, path, level, &key, &ptr); in nilfs_btree_commit_insert()
1232 struct nilfs_btree_path *path; in nilfs_btree_insert() local
1236 path = nilfs_btree_alloc_path(); in nilfs_btree_insert()
1237 if (path == NULL) in nilfs_btree_insert()
1240 ret = nilfs_btree_do_lookup(btree, path, key, NULL, in nilfs_btree_insert()
1248 ret = nilfs_btree_prepare_insert(btree, path, &level, key, ptr, &stats); in nilfs_btree_insert()
1251 nilfs_btree_commit_insert(btree, path, level, key, ptr); in nilfs_btree_insert()
1255 nilfs_btree_free_path(path); in nilfs_btree_insert()
1260 struct nilfs_btree_path *path, in nilfs_btree_do_delete() argument
1267 node = nilfs_btree_get_nonroot_node(path, level); in nilfs_btree_do_delete()
1269 nilfs_btree_node_delete(node, path[level].bp_index, in nilfs_btree_do_delete()
1271 if (!buffer_dirty(path[level].bp_bh)) in nilfs_btree_do_delete()
1272 mark_buffer_dirty(path[level].bp_bh); in nilfs_btree_do_delete()
1273 if (path[level].bp_index == 0) in nilfs_btree_do_delete()
1274 nilfs_btree_promote_key(btree, path, level + 1, in nilfs_btree_do_delete()
1278 nilfs_btree_node_delete(node, path[level].bp_index, in nilfs_btree_do_delete()
1285 struct nilfs_btree_path *path, in nilfs_btree_borrow_left() argument
1291 nilfs_btree_do_delete(btree, path, level, keyp, ptrp); in nilfs_btree_borrow_left()
1293 node = nilfs_btree_get_nonroot_node(path, level); in nilfs_btree_borrow_left()
1294 left = nilfs_btree_get_sib_node(path, level); in nilfs_btree_borrow_left()
1303 if (!buffer_dirty(path[level].bp_bh)) in nilfs_btree_borrow_left()
1304 mark_buffer_dirty(path[level].bp_bh); in nilfs_btree_borrow_left()
1305 if (!buffer_dirty(path[level].bp_sib_bh)) in nilfs_btree_borrow_left()
1306 mark_buffer_dirty(path[level].bp_sib_bh); in nilfs_btree_borrow_left()
1308 nilfs_btree_promote_key(btree, path, level + 1, in nilfs_btree_borrow_left()
1311 brelse(path[level].bp_sib_bh); in nilfs_btree_borrow_left()
1312 path[level].bp_sib_bh = NULL; in nilfs_btree_borrow_left()
1313 path[level].bp_index += n; in nilfs_btree_borrow_left()
1317 struct nilfs_btree_path *path, in nilfs_btree_borrow_right() argument
1323 nilfs_btree_do_delete(btree, path, level, keyp, ptrp); in nilfs_btree_borrow_right()
1325 node = nilfs_btree_get_nonroot_node(path, level); in nilfs_btree_borrow_right()
1326 right = nilfs_btree_get_sib_node(path, level); in nilfs_btree_borrow_right()
1335 if (!buffer_dirty(path[level].bp_bh)) in nilfs_btree_borrow_right()
1336 mark_buffer_dirty(path[level].bp_bh); in nilfs_btree_borrow_right()
1337 if (!buffer_dirty(path[level].bp_sib_bh)) in nilfs_btree_borrow_right()
1338 mark_buffer_dirty(path[level].bp_sib_bh); in nilfs_btree_borrow_right()
1340 path[level + 1].bp_index++; in nilfs_btree_borrow_right()
1341 nilfs_btree_promote_key(btree, path, level + 1, in nilfs_btree_borrow_right()
1343 path[level + 1].bp_index--; in nilfs_btree_borrow_right()
1345 brelse(path[level].bp_sib_bh); in nilfs_btree_borrow_right()
1346 path[level].bp_sib_bh = NULL; in nilfs_btree_borrow_right()
1350 struct nilfs_btree_path *path, in nilfs_btree_concat_left() argument
1356 nilfs_btree_do_delete(btree, path, level, keyp, ptrp); in nilfs_btree_concat_left()
1358 node = nilfs_btree_get_nonroot_node(path, level); in nilfs_btree_concat_left()
1359 left = nilfs_btree_get_sib_node(path, level); in nilfs_btree_concat_left()
1366 if (!buffer_dirty(path[level].bp_sib_bh)) in nilfs_btree_concat_left()
1367 mark_buffer_dirty(path[level].bp_sib_bh); in nilfs_btree_concat_left()
1369 nilfs_btnode_delete(path[level].bp_bh); in nilfs_btree_concat_left()
1370 path[level].bp_bh = path[level].bp_sib_bh; in nilfs_btree_concat_left()
1371 path[level].bp_sib_bh = NULL; in nilfs_btree_concat_left()
1372 path[level].bp_index += nilfs_btree_node_get_nchildren(left); in nilfs_btree_concat_left()
1376 struct nilfs_btree_path *path, in nilfs_btree_concat_right() argument
1382 nilfs_btree_do_delete(btree, path, level, keyp, ptrp); in nilfs_btree_concat_right()
1384 node = nilfs_btree_get_nonroot_node(path, level); in nilfs_btree_concat_right()
1385 right = nilfs_btree_get_sib_node(path, level); in nilfs_btree_concat_right()
1392 if (!buffer_dirty(path[level].bp_bh)) in nilfs_btree_concat_right()
1393 mark_buffer_dirty(path[level].bp_bh); in nilfs_btree_concat_right()
1395 nilfs_btnode_delete(path[level].bp_sib_bh); in nilfs_btree_concat_right()
1396 path[level].bp_sib_bh = NULL; in nilfs_btree_concat_right()
1397 path[level + 1].bp_index++; in nilfs_btree_concat_right()
1401 struct nilfs_btree_path *path, in nilfs_btree_shrink() argument
1407 nilfs_btree_do_delete(btree, path, level, keyp, ptrp); in nilfs_btree_shrink()
1410 child = nilfs_btree_get_nonroot_node(path, level); in nilfs_btree_shrink()
1420 nilfs_btnode_delete(path[level].bp_bh); in nilfs_btree_shrink()
1421 path[level].bp_bh = NULL; in nilfs_btree_shrink()
1425 struct nilfs_btree_path *path, in nilfs_btree_nop() argument
1431 struct nilfs_btree_path *path, in nilfs_btree_prepare_delete() argument
1446 for (level = NILFS_BTREE_LEVEL_NODE_MIN, dindex = path[level].bp_index; in nilfs_btree_prepare_delete()
1449 node = nilfs_btree_get_nonroot_node(path, level); in nilfs_btree_prepare_delete()
1450 path[level].bp_oldreq.bpr_ptr = in nilfs_btree_prepare_delete()
1453 &path[level].bp_oldreq, dat); in nilfs_btree_prepare_delete()
1458 path[level].bp_op = nilfs_btree_do_delete; in nilfs_btree_prepare_delete()
1463 parent = nilfs_btree_get_node(btree, path, level + 1, &ncmax); in nilfs_btree_prepare_delete()
1464 pindex = path[level + 1].bp_index; in nilfs_btree_prepare_delete()
1476 path[level].bp_sib_bh = bh; in nilfs_btree_prepare_delete()
1477 path[level].bp_op = nilfs_btree_borrow_left; in nilfs_btree_prepare_delete()
1481 path[level].bp_sib_bh = bh; in nilfs_btree_prepare_delete()
1482 path[level].bp_op = nilfs_btree_concat_left; in nilfs_btree_prepare_delete()
1496 path[level].bp_sib_bh = bh; in nilfs_btree_prepare_delete()
1497 path[level].bp_op = nilfs_btree_borrow_right; in nilfs_btree_prepare_delete()
1501 path[level].bp_sib_bh = bh; in nilfs_btree_prepare_delete()
1502 path[level].bp_op = nilfs_btree_concat_right; in nilfs_btree_prepare_delete()
1520 path[level].bp_op = nilfs_btree_shrink; in nilfs_btree_prepare_delete()
1523 path[level].bp_op = nilfs_btree_nop; in nilfs_btree_prepare_delete()
1526 path[level].bp_op = nilfs_btree_do_delete; in nilfs_btree_prepare_delete()
1534 path[level].bp_op = nilfs_btree_do_delete; in nilfs_btree_prepare_delete()
1539 path[level].bp_oldreq.bpr_ptr = in nilfs_btree_prepare_delete()
1543 ret = nilfs_bmap_prepare_end_ptr(btree, &path[level].bp_oldreq, dat); in nilfs_btree_prepare_delete()
1554 nilfs_bmap_abort_end_ptr(btree, &path[level].bp_oldreq, dat); in nilfs_btree_prepare_delete()
1557 brelse(path[level].bp_sib_bh); in nilfs_btree_prepare_delete()
1558 nilfs_bmap_abort_end_ptr(btree, &path[level].bp_oldreq, dat); in nilfs_btree_prepare_delete()
1566 struct nilfs_btree_path *path, in nilfs_btree_commit_delete() argument
1572 nilfs_bmap_commit_end_ptr(btree, &path[level].bp_oldreq, dat); in nilfs_btree_commit_delete()
1573 path[level].bp_op(btree, path, level, NULL, NULL); in nilfs_btree_commit_delete()
1583 struct nilfs_btree_path *path; in nilfs_btree_delete() local
1588 path = nilfs_btree_alloc_path(); in nilfs_btree_delete()
1589 if (path == NULL) in nilfs_btree_delete()
1592 ret = nilfs_btree_do_lookup(btree, path, key, NULL, in nilfs_btree_delete()
1600 ret = nilfs_btree_prepare_delete(btree, path, &level, &stats, dat); in nilfs_btree_delete()
1603 nilfs_btree_commit_delete(btree, path, level, dat); in nilfs_btree_delete()
1607 nilfs_btree_free_path(path); in nilfs_btree_delete()
1614 struct nilfs_btree_path *path; in nilfs_btree_seek_key() local
1618 path = nilfs_btree_alloc_path(); in nilfs_btree_seek_key()
1619 if (!path) in nilfs_btree_seek_key()
1622 ret = nilfs_btree_do_lookup(btree, path, start, NULL, minlevel, 0); in nilfs_btree_seek_key()
1626 ret = nilfs_btree_get_next_key(btree, path, minlevel, keyp); in nilfs_btree_seek_key()
1628 nilfs_btree_free_path(path); in nilfs_btree_seek_key()
1634 struct nilfs_btree_path *path; in nilfs_btree_last_key() local
1637 path = nilfs_btree_alloc_path(); in nilfs_btree_last_key()
1638 if (path == NULL) in nilfs_btree_last_key()
1641 ret = nilfs_btree_do_lookup_last(btree, path, keyp, NULL); in nilfs_btree_last_key()
1643 nilfs_btree_free_path(path); in nilfs_btree_last_key()
1899 struct nilfs_btree_path *path, in nilfs_btree_propagate_p() argument
1904 !buffer_dirty(path[level].bp_bh)) in nilfs_btree_propagate_p()
1905 mark_buffer_dirty(path[level].bp_bh); in nilfs_btree_propagate_p()
1911 struct nilfs_btree_path *path, in nilfs_btree_prepare_update_v() argument
1917 parent = nilfs_btree_get_node(btree, path, level + 1, &ncmax); in nilfs_btree_prepare_update_v()
1918 path[level].bp_oldreq.bpr_ptr = in nilfs_btree_prepare_update_v()
1919 nilfs_btree_node_get_ptr(parent, path[level + 1].bp_index, in nilfs_btree_prepare_update_v()
1921 path[level].bp_newreq.bpr_ptr = path[level].bp_oldreq.bpr_ptr + 1; in nilfs_btree_prepare_update_v()
1922 ret = nilfs_dat_prepare_update(dat, &path[level].bp_oldreq.bpr_req, in nilfs_btree_prepare_update_v()
1923 &path[level].bp_newreq.bpr_req); in nilfs_btree_prepare_update_v()
1927 if (buffer_nilfs_node(path[level].bp_bh)) { in nilfs_btree_prepare_update_v()
1928 path[level].bp_ctxt.oldkey = path[level].bp_oldreq.bpr_ptr; in nilfs_btree_prepare_update_v()
1929 path[level].bp_ctxt.newkey = path[level].bp_newreq.bpr_ptr; in nilfs_btree_prepare_update_v()
1930 path[level].bp_ctxt.bh = path[level].bp_bh; in nilfs_btree_prepare_update_v()
1933 &path[level].bp_ctxt); in nilfs_btree_prepare_update_v()
1936 &path[level].bp_oldreq.bpr_req, in nilfs_btree_prepare_update_v()
1937 &path[level].bp_newreq.bpr_req); in nilfs_btree_prepare_update_v()
1946 struct nilfs_btree_path *path, in nilfs_btree_commit_update_v() argument
1952 nilfs_dat_commit_update(dat, &path[level].bp_oldreq.bpr_req, in nilfs_btree_commit_update_v()
1953 &path[level].bp_newreq.bpr_req, in nilfs_btree_commit_update_v()
1956 if (buffer_nilfs_node(path[level].bp_bh)) { in nilfs_btree_commit_update_v()
1959 &path[level].bp_ctxt); in nilfs_btree_commit_update_v()
1960 path[level].bp_bh = path[level].bp_ctxt.bh; in nilfs_btree_commit_update_v()
1962 set_buffer_nilfs_volatile(path[level].bp_bh); in nilfs_btree_commit_update_v()
1964 parent = nilfs_btree_get_node(btree, path, level + 1, &ncmax); in nilfs_btree_commit_update_v()
1965 nilfs_btree_node_set_ptr(parent, path[level + 1].bp_index, in nilfs_btree_commit_update_v()
1966 path[level].bp_newreq.bpr_ptr, ncmax); in nilfs_btree_commit_update_v()
1970 struct nilfs_btree_path *path, in nilfs_btree_abort_update_v() argument
1973 nilfs_dat_abort_update(dat, &path[level].bp_oldreq.bpr_req, in nilfs_btree_abort_update_v()
1974 &path[level].bp_newreq.bpr_req); in nilfs_btree_abort_update_v()
1975 if (buffer_nilfs_node(path[level].bp_bh)) in nilfs_btree_abort_update_v()
1978 &path[level].bp_ctxt); in nilfs_btree_abort_update_v()
1982 struct nilfs_btree_path *path, in nilfs_btree_prepare_propagate_v() argument
1989 if (!buffer_nilfs_volatile(path[level].bp_bh)) { in nilfs_btree_prepare_propagate_v()
1990 ret = nilfs_btree_prepare_update_v(btree, path, level, dat); in nilfs_btree_prepare_propagate_v()
1995 !buffer_dirty(path[level].bp_bh)) { in nilfs_btree_prepare_propagate_v()
1997 WARN_ON(buffer_nilfs_volatile(path[level].bp_bh)); in nilfs_btree_prepare_propagate_v()
1998 ret = nilfs_btree_prepare_update_v(btree, path, level, dat); in nilfs_btree_prepare_propagate_v()
2010 nilfs_btree_abort_update_v(btree, path, level, dat); in nilfs_btree_prepare_propagate_v()
2011 if (!buffer_nilfs_volatile(path[level].bp_bh)) in nilfs_btree_prepare_propagate_v()
2012 nilfs_btree_abort_update_v(btree, path, level, dat); in nilfs_btree_prepare_propagate_v()
2017 struct nilfs_btree_path *path, in nilfs_btree_commit_propagate_v() argument
2024 if (!buffer_nilfs_volatile(path[minlevel].bp_bh)) in nilfs_btree_commit_propagate_v()
2025 nilfs_btree_commit_update_v(btree, path, minlevel, dat); in nilfs_btree_commit_propagate_v()
2028 nilfs_btree_commit_update_v(btree, path, level, dat); in nilfs_btree_commit_propagate_v()
2032 struct nilfs_btree_path *path, in nilfs_btree_propagate_v() argument
2042 path[level].bp_bh = bh; in nilfs_btree_propagate_v()
2043 ret = nilfs_btree_prepare_propagate_v(btree, path, level, &maxlevel, in nilfs_btree_propagate_v()
2048 if (buffer_nilfs_volatile(path[level].bp_bh)) { in nilfs_btree_propagate_v()
2049 parent = nilfs_btree_get_node(btree, path, level + 1, &ncmax); in nilfs_btree_propagate_v()
2051 path[level + 1].bp_index, in nilfs_btree_propagate_v()
2058 nilfs_btree_commit_propagate_v(btree, path, level, maxlevel, bh, dat); in nilfs_btree_propagate_v()
2061 brelse(path[level].bp_bh); in nilfs_btree_propagate_v()
2062 path[level].bp_bh = NULL; in nilfs_btree_propagate_v()
2069 struct nilfs_btree_path *path; in nilfs_btree_propagate() local
2076 path = nilfs_btree_alloc_path(); in nilfs_btree_propagate()
2077 if (path == NULL) in nilfs_btree_propagate()
2089 ret = nilfs_btree_do_lookup(btree, path, key, NULL, level + 1, 0); in nilfs_btree_propagate()
2100 nilfs_btree_propagate_v(btree, path, level, bh) : in nilfs_btree_propagate()
2101 nilfs_btree_propagate_p(btree, path, level, bh); in nilfs_btree_propagate()
2104 nilfs_btree_free_path(path); in nilfs_btree_propagate()
2189 struct nilfs_btree_path *path, in nilfs_btree_assign_p() argument
2200 parent = nilfs_btree_get_node(btree, path, level + 1, &ncmax); in nilfs_btree_assign_p()
2201 ptr = nilfs_btree_node_get_ptr(parent, path[level + 1].bp_index, in nilfs_btree_assign_p()
2204 path[level].bp_ctxt.oldkey = ptr; in nilfs_btree_assign_p()
2205 path[level].bp_ctxt.newkey = blocknr; in nilfs_btree_assign_p()
2206 path[level].bp_ctxt.bh = *bh; in nilfs_btree_assign_p()
2209 &path[level].bp_ctxt); in nilfs_btree_assign_p()
2214 &path[level].bp_ctxt); in nilfs_btree_assign_p()
2215 *bh = path[level].bp_ctxt.bh; in nilfs_btree_assign_p()
2218 nilfs_btree_node_set_ptr(parent, path[level + 1].bp_index, blocknr, in nilfs_btree_assign_p()
2221 key = nilfs_btree_node_get_key(parent, path[level + 1].bp_index); in nilfs_btree_assign_p()
2230 struct nilfs_btree_path *path, in nilfs_btree_assign_v() argument
2243 parent = nilfs_btree_get_node(btree, path, level + 1, &ncmax); in nilfs_btree_assign_v()
2244 ptr = nilfs_btree_node_get_ptr(parent, path[level + 1].bp_index, in nilfs_btree_assign_v()
2252 key = nilfs_btree_node_get_key(parent, path[level + 1].bp_index); in nilfs_btree_assign_v()
2265 struct nilfs_btree_path *path; in nilfs_btree_assign() local
2270 path = nilfs_btree_alloc_path(); in nilfs_btree_assign()
2271 if (path == NULL) in nilfs_btree_assign()
2283 ret = nilfs_btree_do_lookup(btree, path, key, NULL, level + 1, 0); in nilfs_btree_assign()
2290 nilfs_btree_assign_v(btree, path, level, bh, blocknr, binfo) : in nilfs_btree_assign()
2291 nilfs_btree_assign_p(btree, path, level, bh, blocknr, binfo); in nilfs_btree_assign()
2294 nilfs_btree_free_path(path); in nilfs_btree_assign()
2329 struct nilfs_btree_path *path; in nilfs_btree_mark() local
2333 path = nilfs_btree_alloc_path(); in nilfs_btree_mark()
2334 if (path == NULL) in nilfs_btree_mark()
2337 ret = nilfs_btree_do_lookup(btree, path, key, &ptr, level + 1, 0); in nilfs_btree_mark()
2355 nilfs_btree_free_path(path); in nilfs_btree_mark()