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()
417 nilfs_btree_get_nonroot_node(const struct nilfs_btree_path *path, int level) in nilfs_btree_get_nonroot_node() argument
419 return (struct nilfs_btree_node *)path[level].bp_bh->b_data; in nilfs_btree_get_nonroot_node()
423 nilfs_btree_get_sib_node(const struct nilfs_btree_path *path, int level) in nilfs_btree_get_sib_node() argument
425 return (struct nilfs_btree_node *)path[level].bp_sib_bh->b_data; in nilfs_btree_get_sib_node()
435 const struct nilfs_btree_path *path, in nilfs_btree_get_node() argument
444 node = nilfs_btree_get_nonroot_node(path, level); in nilfs_btree_get_node()
548 struct nilfs_btree_path *path, in nilfs_btree_do_lookup() argument
565 path[level].bp_bh = NULL; in nilfs_btree_do_lookup()
566 path[level].bp_index = index; in nilfs_btree_do_lookup()
573 p.node = nilfs_btree_get_node(btree, path, level + 1, in nilfs_btree_do_lookup()
579 ret = __nilfs_btree_get_block(btree, ptr, &path[level].bp_bh, in nilfs_btree_do_lookup()
584 node = nilfs_btree_get_nonroot_node(path, level); in nilfs_btree_do_lookup()
598 path[level].bp_index = index; in nilfs_btree_do_lookup()
610 struct nilfs_btree_path *path, in nilfs_btree_do_lookup_last() argument
624 path[level].bp_bh = NULL; in nilfs_btree_do_lookup_last()
625 path[level].bp_index = index; in nilfs_btree_do_lookup_last()
629 ret = nilfs_btree_get_block(btree, ptr, &path[level].bp_bh); in nilfs_btree_do_lookup_last()
632 node = nilfs_btree_get_nonroot_node(path, level); in nilfs_btree_do_lookup_last()
637 path[level].bp_index = index; in nilfs_btree_do_lookup_last()
649 * nilfs_btree_get_next_key - get next valid key from btree path array
651 * @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()
757 p.node = nilfs_btree_get_node(btree, path, level + 1, &p.ncmax); in nilfs_btree_lookup_contig()
758 p.index = path[level + 1].bp_index + 1; in nilfs_btree_lookup_contig()
764 path[level + 1].bp_index = p.index; in nilfs_btree_lookup_contig()
766 brelse(path[level].bp_bh); in nilfs_btree_lookup_contig()
767 path[level].bp_bh = NULL; in nilfs_btree_lookup_contig()
769 ret = __nilfs_btree_get_block(btree, ptr2, &path[level].bp_bh, in nilfs_btree_lookup_contig()
773 node = nilfs_btree_get_nonroot_node(path, level); in nilfs_btree_lookup_contig()
776 path[level].bp_index = index; in nilfs_btree_lookup_contig()
782 nilfs_btree_free_path(path); in nilfs_btree_lookup_contig()
792 struct nilfs_btree_path *path, in nilfs_btree_promote_key() argument
798 nilfs_btree_get_nonroot_node(path, level), in nilfs_btree_promote_key()
799 path[level].bp_index, key); in nilfs_btree_promote_key()
800 if (!buffer_dirty(path[level].bp_bh)) in nilfs_btree_promote_key()
801 mark_buffer_dirty(path[level].bp_bh); in nilfs_btree_promote_key()
802 } while ((path[level].bp_index == 0) && in nilfs_btree_promote_key()
809 path[level].bp_index, key); in nilfs_btree_promote_key()
814 struct nilfs_btree_path *path, in nilfs_btree_do_insert() argument
821 node = nilfs_btree_get_nonroot_node(path, level); in nilfs_btree_do_insert()
823 nilfs_btree_node_insert(node, path[level].bp_index, in nilfs_btree_do_insert()
825 if (!buffer_dirty(path[level].bp_bh)) in nilfs_btree_do_insert()
826 mark_buffer_dirty(path[level].bp_bh); in nilfs_btree_do_insert()
828 if (path[level].bp_index == 0) in nilfs_btree_do_insert()
829 nilfs_btree_promote_key(btree, path, level + 1, in nilfs_btree_do_insert()
834 nilfs_btree_node_insert(node, path[level].bp_index, in nilfs_btree_do_insert()
841 struct nilfs_btree_path *path, in nilfs_btree_carry_left() argument
847 node = nilfs_btree_get_nonroot_node(path, level); in nilfs_btree_carry_left()
848 left = nilfs_btree_get_sib_node(path, level); in nilfs_btree_carry_left()
855 if (n > path[level].bp_index) { in nilfs_btree_carry_left()
863 if (!buffer_dirty(path[level].bp_bh)) in nilfs_btree_carry_left()
864 mark_buffer_dirty(path[level].bp_bh); in nilfs_btree_carry_left()
865 if (!buffer_dirty(path[level].bp_sib_bh)) in nilfs_btree_carry_left()
866 mark_buffer_dirty(path[level].bp_sib_bh); in nilfs_btree_carry_left()
868 nilfs_btree_promote_key(btree, path, level + 1, in nilfs_btree_carry_left()
872 brelse(path[level].bp_bh); in nilfs_btree_carry_left()
873 path[level].bp_bh = path[level].bp_sib_bh; in nilfs_btree_carry_left()
874 path[level].bp_sib_bh = NULL; in nilfs_btree_carry_left()
875 path[level].bp_index += lnchildren; in nilfs_btree_carry_left()
876 path[level + 1].bp_index--; in nilfs_btree_carry_left()
878 brelse(path[level].bp_sib_bh); in nilfs_btree_carry_left()
879 path[level].bp_sib_bh = NULL; in nilfs_btree_carry_left()
880 path[level].bp_index -= n; in nilfs_btree_carry_left()
883 nilfs_btree_do_insert(btree, path, level, keyp, ptrp); in nilfs_btree_carry_left()
887 struct nilfs_btree_path *path, in nilfs_btree_carry_right() argument
893 node = nilfs_btree_get_nonroot_node(path, level); in nilfs_btree_carry_right()
894 right = nilfs_btree_get_sib_node(path, level); in nilfs_btree_carry_right()
901 if (n > nchildren - path[level].bp_index) { in nilfs_btree_carry_right()
909 if (!buffer_dirty(path[level].bp_bh)) in nilfs_btree_carry_right()
910 mark_buffer_dirty(path[level].bp_bh); in nilfs_btree_carry_right()
911 if (!buffer_dirty(path[level].bp_sib_bh)) in nilfs_btree_carry_right()
912 mark_buffer_dirty(path[level].bp_sib_bh); in nilfs_btree_carry_right()
914 path[level + 1].bp_index++; in nilfs_btree_carry_right()
915 nilfs_btree_promote_key(btree, path, level + 1, in nilfs_btree_carry_right()
917 path[level + 1].bp_index--; in nilfs_btree_carry_right()
920 brelse(path[level].bp_bh); in nilfs_btree_carry_right()
921 path[level].bp_bh = path[level].bp_sib_bh; in nilfs_btree_carry_right()
922 path[level].bp_sib_bh = NULL; in nilfs_btree_carry_right()
923 path[level].bp_index -= nilfs_btree_node_get_nchildren(node); in nilfs_btree_carry_right()
924 path[level + 1].bp_index++; in nilfs_btree_carry_right()
926 brelse(path[level].bp_sib_bh); in nilfs_btree_carry_right()
927 path[level].bp_sib_bh = NULL; in nilfs_btree_carry_right()
930 nilfs_btree_do_insert(btree, path, level, keyp, ptrp); in nilfs_btree_carry_right()
934 struct nilfs_btree_path *path, in nilfs_btree_split() argument
940 node = nilfs_btree_get_nonroot_node(path, level); in nilfs_btree_split()
941 right = nilfs_btree_get_sib_node(path, level); in nilfs_btree_split()
947 if (n > nchildren - path[level].bp_index) { in nilfs_btree_split()
954 if (!buffer_dirty(path[level].bp_bh)) in nilfs_btree_split()
955 mark_buffer_dirty(path[level].bp_bh); in nilfs_btree_split()
956 if (!buffer_dirty(path[level].bp_sib_bh)) in nilfs_btree_split()
957 mark_buffer_dirty(path[level].bp_sib_bh); in nilfs_btree_split()
960 path[level].bp_index -= nilfs_btree_node_get_nchildren(node); in nilfs_btree_split()
961 nilfs_btree_node_insert(right, path[level].bp_index, in nilfs_btree_split()
965 *ptrp = path[level].bp_newreq.bpr_ptr; in nilfs_btree_split()
967 brelse(path[level].bp_bh); in nilfs_btree_split()
968 path[level].bp_bh = path[level].bp_sib_bh; in nilfs_btree_split()
969 path[level].bp_sib_bh = NULL; in nilfs_btree_split()
971 nilfs_btree_do_insert(btree, path, level, keyp, ptrp); in nilfs_btree_split()
974 *ptrp = path[level].bp_newreq.bpr_ptr; in nilfs_btree_split()
976 brelse(path[level].bp_sib_bh); in nilfs_btree_split()
977 path[level].bp_sib_bh = NULL; in nilfs_btree_split()
980 path[level + 1].bp_index++; in nilfs_btree_split()
984 struct nilfs_btree_path *path, in nilfs_btree_grow() argument
991 child = nilfs_btree_get_sib_node(path, level); in nilfs_btree_grow()
1000 if (!buffer_dirty(path[level].bp_sib_bh)) in nilfs_btree_grow()
1001 mark_buffer_dirty(path[level].bp_sib_bh); in nilfs_btree_grow()
1003 path[level].bp_bh = path[level].bp_sib_bh; in nilfs_btree_grow()
1004 path[level].bp_sib_bh = NULL; in nilfs_btree_grow()
1006 nilfs_btree_do_insert(btree, path, level, keyp, ptrp); in nilfs_btree_grow()
1009 *ptrp = path[level].bp_newreq.bpr_ptr; in nilfs_btree_grow()
1013 const struct nilfs_btree_path *path) in nilfs_btree_find_near() argument
1018 if (path == NULL) in nilfs_btree_find_near()
1023 if (path[level].bp_index > 0) { in nilfs_btree_find_near()
1024 node = nilfs_btree_get_node(btree, path, level, &ncmax); in nilfs_btree_find_near()
1026 path[level].bp_index - 1, in nilfs_btree_find_near()
1033 node = nilfs_btree_get_node(btree, path, level, &ncmax); in nilfs_btree_find_near()
1034 return nilfs_btree_node_get_ptr(node, path[level].bp_index, in nilfs_btree_find_near()
1042 const struct nilfs_btree_path *path, in nilfs_btree_find_target_v() argument
1052 ptr = nilfs_btree_find_near(btree, path); in nilfs_btree_find_target_v()
1062 struct nilfs_btree_path *path, in nilfs_btree_prepare_insert() argument
1077 path[level].bp_newreq.bpr_ptr = in nilfs_btree_prepare_insert()
1078 nilfs_btree_find_target_v(btree, path, key); in nilfs_btree_prepare_insert()
1082 ret = nilfs_bmap_prepare_alloc_ptr(btree, &path[level].bp_newreq, dat); in nilfs_btree_prepare_insert()
1091 node = nilfs_btree_get_nonroot_node(path, level); in nilfs_btree_prepare_insert()
1093 path[level].bp_op = nilfs_btree_do_insert; in nilfs_btree_prepare_insert()
1098 parent = nilfs_btree_get_node(btree, path, level + 1, &ncmax); in nilfs_btree_prepare_insert()
1099 pindex = path[level + 1].bp_index; in nilfs_btree_prepare_insert()
1110 path[level].bp_sib_bh = bh; in nilfs_btree_prepare_insert()
1111 path[level].bp_op = nilfs_btree_carry_left; in nilfs_btree_prepare_insert()
1128 path[level].bp_sib_bh = bh; in nilfs_btree_prepare_insert()
1129 path[level].bp_op = nilfs_btree_carry_right; in nilfs_btree_prepare_insert()
1138 path[level].bp_newreq.bpr_ptr = in nilfs_btree_prepare_insert()
1139 path[level - 1].bp_newreq.bpr_ptr + 1; in nilfs_btree_prepare_insert()
1141 &path[level].bp_newreq, dat); in nilfs_btree_prepare_insert()
1145 path[level].bp_newreq.bpr_ptr, in nilfs_btree_prepare_insert()
1154 path[level].bp_sib_bh = bh; in nilfs_btree_prepare_insert()
1155 path[level].bp_op = nilfs_btree_split; in nilfs_btree_prepare_insert()
1162 path[level].bp_op = nilfs_btree_do_insert; in nilfs_btree_prepare_insert()
1168 path[level].bp_newreq.bpr_ptr = path[level - 1].bp_newreq.bpr_ptr + 1; in nilfs_btree_prepare_insert()
1169 ret = nilfs_bmap_prepare_alloc_ptr(btree, &path[level].bp_newreq, dat); in nilfs_btree_prepare_insert()
1172 ret = nilfs_btree_get_new_block(btree, path[level].bp_newreq.bpr_ptr, in nilfs_btree_prepare_insert()
1179 path[level].bp_sib_bh = bh; in nilfs_btree_prepare_insert()
1180 path[level].bp_op = nilfs_btree_grow; in nilfs_btree_prepare_insert()
1183 path[level].bp_op = nilfs_btree_do_insert; in nilfs_btree_prepare_insert()
1195 nilfs_bmap_abort_alloc_ptr(btree, &path[level].bp_newreq, dat); in nilfs_btree_prepare_insert()
1198 nilfs_btnode_delete(path[level].bp_sib_bh); in nilfs_btree_prepare_insert()
1199 nilfs_bmap_abort_alloc_ptr(btree, &path[level].bp_newreq, dat); in nilfs_btree_prepare_insert()
1203 nilfs_bmap_abort_alloc_ptr(btree, &path[level].bp_newreq, dat); in nilfs_btree_prepare_insert()
1211 struct nilfs_btree_path *path, in nilfs_btree_commit_insert() argument
1218 ptr = path[NILFS_BTREE_LEVEL_DATA].bp_newreq.bpr_ptr; in nilfs_btree_commit_insert()
1226 &path[level - 1].bp_newreq, dat); in nilfs_btree_commit_insert()
1227 path[level].bp_op(btree, path, level, &key, &ptr); in nilfs_btree_commit_insert()
1236 struct nilfs_btree_path *path; in nilfs_btree_insert() local
1240 path = nilfs_btree_alloc_path(); in nilfs_btree_insert()
1241 if (path == NULL) in nilfs_btree_insert()
1244 ret = nilfs_btree_do_lookup(btree, path, key, NULL, in nilfs_btree_insert()
1252 ret = nilfs_btree_prepare_insert(btree, path, &level, key, ptr, &stats); in nilfs_btree_insert()
1255 nilfs_btree_commit_insert(btree, path, level, key, ptr); in nilfs_btree_insert()
1259 nilfs_btree_free_path(path); in nilfs_btree_insert()
1264 struct nilfs_btree_path *path, in nilfs_btree_do_delete() argument
1271 node = nilfs_btree_get_nonroot_node(path, level); in nilfs_btree_do_delete()
1273 nilfs_btree_node_delete(node, path[level].bp_index, in nilfs_btree_do_delete()
1275 if (!buffer_dirty(path[level].bp_bh)) in nilfs_btree_do_delete()
1276 mark_buffer_dirty(path[level].bp_bh); in nilfs_btree_do_delete()
1277 if (path[level].bp_index == 0) in nilfs_btree_do_delete()
1278 nilfs_btree_promote_key(btree, path, level + 1, in nilfs_btree_do_delete()
1282 nilfs_btree_node_delete(node, path[level].bp_index, in nilfs_btree_do_delete()
1289 struct nilfs_btree_path *path, in nilfs_btree_borrow_left() argument
1295 nilfs_btree_do_delete(btree, path, level, keyp, ptrp); in nilfs_btree_borrow_left()
1297 node = nilfs_btree_get_nonroot_node(path, level); in nilfs_btree_borrow_left()
1298 left = nilfs_btree_get_sib_node(path, level); in nilfs_btree_borrow_left()
1307 if (!buffer_dirty(path[level].bp_bh)) in nilfs_btree_borrow_left()
1308 mark_buffer_dirty(path[level].bp_bh); in nilfs_btree_borrow_left()
1309 if (!buffer_dirty(path[level].bp_sib_bh)) in nilfs_btree_borrow_left()
1310 mark_buffer_dirty(path[level].bp_sib_bh); in nilfs_btree_borrow_left()
1312 nilfs_btree_promote_key(btree, path, level + 1, in nilfs_btree_borrow_left()
1315 brelse(path[level].bp_sib_bh); in nilfs_btree_borrow_left()
1316 path[level].bp_sib_bh = NULL; in nilfs_btree_borrow_left()
1317 path[level].bp_index += n; in nilfs_btree_borrow_left()
1321 struct nilfs_btree_path *path, in nilfs_btree_borrow_right() argument
1327 nilfs_btree_do_delete(btree, path, level, keyp, ptrp); in nilfs_btree_borrow_right()
1329 node = nilfs_btree_get_nonroot_node(path, level); in nilfs_btree_borrow_right()
1330 right = nilfs_btree_get_sib_node(path, level); in nilfs_btree_borrow_right()
1339 if (!buffer_dirty(path[level].bp_bh)) in nilfs_btree_borrow_right()
1340 mark_buffer_dirty(path[level].bp_bh); in nilfs_btree_borrow_right()
1341 if (!buffer_dirty(path[level].bp_sib_bh)) in nilfs_btree_borrow_right()
1342 mark_buffer_dirty(path[level].bp_sib_bh); in nilfs_btree_borrow_right()
1344 path[level + 1].bp_index++; in nilfs_btree_borrow_right()
1345 nilfs_btree_promote_key(btree, path, level + 1, in nilfs_btree_borrow_right()
1347 path[level + 1].bp_index--; in nilfs_btree_borrow_right()
1349 brelse(path[level].bp_sib_bh); in nilfs_btree_borrow_right()
1350 path[level].bp_sib_bh = NULL; in nilfs_btree_borrow_right()
1354 struct nilfs_btree_path *path, in nilfs_btree_concat_left() argument
1360 nilfs_btree_do_delete(btree, path, level, keyp, ptrp); in nilfs_btree_concat_left()
1362 node = nilfs_btree_get_nonroot_node(path, level); in nilfs_btree_concat_left()
1363 left = nilfs_btree_get_sib_node(path, level); in nilfs_btree_concat_left()
1370 if (!buffer_dirty(path[level].bp_sib_bh)) in nilfs_btree_concat_left()
1371 mark_buffer_dirty(path[level].bp_sib_bh); in nilfs_btree_concat_left()
1373 nilfs_btnode_delete(path[level].bp_bh); in nilfs_btree_concat_left()
1374 path[level].bp_bh = path[level].bp_sib_bh; in nilfs_btree_concat_left()
1375 path[level].bp_sib_bh = NULL; in nilfs_btree_concat_left()
1376 path[level].bp_index += nilfs_btree_node_get_nchildren(left); in nilfs_btree_concat_left()
1380 struct nilfs_btree_path *path, in nilfs_btree_concat_right() argument
1386 nilfs_btree_do_delete(btree, path, level, keyp, ptrp); in nilfs_btree_concat_right()
1388 node = nilfs_btree_get_nonroot_node(path, level); in nilfs_btree_concat_right()
1389 right = nilfs_btree_get_sib_node(path, level); in nilfs_btree_concat_right()
1396 if (!buffer_dirty(path[level].bp_bh)) in nilfs_btree_concat_right()
1397 mark_buffer_dirty(path[level].bp_bh); in nilfs_btree_concat_right()
1399 nilfs_btnode_delete(path[level].bp_sib_bh); in nilfs_btree_concat_right()
1400 path[level].bp_sib_bh = NULL; in nilfs_btree_concat_right()
1401 path[level + 1].bp_index++; in nilfs_btree_concat_right()
1405 struct nilfs_btree_path *path, in nilfs_btree_shrink() argument
1411 nilfs_btree_do_delete(btree, path, level, keyp, ptrp); in nilfs_btree_shrink()
1414 child = nilfs_btree_get_nonroot_node(path, level); in nilfs_btree_shrink()
1424 nilfs_btnode_delete(path[level].bp_bh); in nilfs_btree_shrink()
1425 path[level].bp_bh = NULL; in nilfs_btree_shrink()
1429 struct nilfs_btree_path *path, in nilfs_btree_nop() argument
1435 struct nilfs_btree_path *path, in nilfs_btree_prepare_delete() argument
1450 for (level = NILFS_BTREE_LEVEL_NODE_MIN, dindex = path[level].bp_index; in nilfs_btree_prepare_delete()
1453 node = nilfs_btree_get_nonroot_node(path, level); in nilfs_btree_prepare_delete()
1454 path[level].bp_oldreq.bpr_ptr = in nilfs_btree_prepare_delete()
1457 &path[level].bp_oldreq, dat); in nilfs_btree_prepare_delete()
1462 path[level].bp_op = nilfs_btree_do_delete; in nilfs_btree_prepare_delete()
1467 parent = nilfs_btree_get_node(btree, path, level + 1, &ncmax); in nilfs_btree_prepare_delete()
1468 pindex = path[level + 1].bp_index; in nilfs_btree_prepare_delete()
1480 path[level].bp_sib_bh = bh; in nilfs_btree_prepare_delete()
1481 path[level].bp_op = nilfs_btree_borrow_left; in nilfs_btree_prepare_delete()
1485 path[level].bp_sib_bh = bh; in nilfs_btree_prepare_delete()
1486 path[level].bp_op = nilfs_btree_concat_left; in nilfs_btree_prepare_delete()
1500 path[level].bp_sib_bh = bh; in nilfs_btree_prepare_delete()
1501 path[level].bp_op = nilfs_btree_borrow_right; in nilfs_btree_prepare_delete()
1505 path[level].bp_sib_bh = bh; in nilfs_btree_prepare_delete()
1506 path[level].bp_op = nilfs_btree_concat_right; in nilfs_btree_prepare_delete()
1524 path[level].bp_op = nilfs_btree_shrink; in nilfs_btree_prepare_delete()
1527 path[level].bp_op = nilfs_btree_nop; in nilfs_btree_prepare_delete()
1530 path[level].bp_op = nilfs_btree_do_delete; in nilfs_btree_prepare_delete()
1538 path[level].bp_op = nilfs_btree_do_delete; in nilfs_btree_prepare_delete()
1543 path[level].bp_oldreq.bpr_ptr = in nilfs_btree_prepare_delete()
1547 ret = nilfs_bmap_prepare_end_ptr(btree, &path[level].bp_oldreq, dat); in nilfs_btree_prepare_delete()
1558 nilfs_bmap_abort_end_ptr(btree, &path[level].bp_oldreq, dat); in nilfs_btree_prepare_delete()
1561 brelse(path[level].bp_sib_bh); in nilfs_btree_prepare_delete()
1562 nilfs_bmap_abort_end_ptr(btree, &path[level].bp_oldreq, dat); in nilfs_btree_prepare_delete()
1570 struct nilfs_btree_path *path, in nilfs_btree_commit_delete() argument
1576 nilfs_bmap_commit_end_ptr(btree, &path[level].bp_oldreq, dat); in nilfs_btree_commit_delete()
1577 path[level].bp_op(btree, path, level, NULL, NULL); in nilfs_btree_commit_delete()
1587 struct nilfs_btree_path *path; in nilfs_btree_delete() local
1592 path = nilfs_btree_alloc_path(); in nilfs_btree_delete()
1593 if (path == NULL) in nilfs_btree_delete()
1596 ret = nilfs_btree_do_lookup(btree, path, key, NULL, in nilfs_btree_delete()
1604 ret = nilfs_btree_prepare_delete(btree, path, &level, &stats, dat); in nilfs_btree_delete()
1607 nilfs_btree_commit_delete(btree, path, level, dat); in nilfs_btree_delete()
1611 nilfs_btree_free_path(path); in nilfs_btree_delete()
1618 struct nilfs_btree_path *path; in nilfs_btree_seek_key() local
1622 path = nilfs_btree_alloc_path(); in nilfs_btree_seek_key()
1623 if (!path) in nilfs_btree_seek_key()
1626 ret = nilfs_btree_do_lookup(btree, path, start, NULL, minlevel, 0); in nilfs_btree_seek_key()
1630 ret = nilfs_btree_get_next_key(btree, path, minlevel, keyp); in nilfs_btree_seek_key()
1632 nilfs_btree_free_path(path); in nilfs_btree_seek_key()
1638 struct nilfs_btree_path *path; in nilfs_btree_last_key() local
1641 path = nilfs_btree_alloc_path(); in nilfs_btree_last_key()
1642 if (path == NULL) in nilfs_btree_last_key()
1645 ret = nilfs_btree_do_lookup_last(btree, path, keyp, NULL); in nilfs_btree_last_key()
1647 nilfs_btree_free_path(path); in nilfs_btree_last_key()
1913 struct nilfs_btree_path *path, in nilfs_btree_propagate_p() argument
1918 !buffer_dirty(path[level].bp_bh)) in nilfs_btree_propagate_p()
1919 mark_buffer_dirty(path[level].bp_bh); in nilfs_btree_propagate_p()
1925 struct nilfs_btree_path *path, in nilfs_btree_prepare_update_v() argument
1931 parent = nilfs_btree_get_node(btree, path, level + 1, &ncmax); in nilfs_btree_prepare_update_v()
1932 path[level].bp_oldreq.bpr_ptr = in nilfs_btree_prepare_update_v()
1933 nilfs_btree_node_get_ptr(parent, path[level + 1].bp_index, in nilfs_btree_prepare_update_v()
1935 path[level].bp_newreq.bpr_ptr = path[level].bp_oldreq.bpr_ptr + 1; in nilfs_btree_prepare_update_v()
1936 ret = nilfs_dat_prepare_update(dat, &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()
1941 if (buffer_nilfs_node(path[level].bp_bh)) { in nilfs_btree_prepare_update_v()
1942 path[level].bp_ctxt.oldkey = path[level].bp_oldreq.bpr_ptr; in nilfs_btree_prepare_update_v()
1943 path[level].bp_ctxt.newkey = path[level].bp_newreq.bpr_ptr; in nilfs_btree_prepare_update_v()
1944 path[level].bp_ctxt.bh = path[level].bp_bh; in nilfs_btree_prepare_update_v()
1947 &path[level].bp_ctxt); in nilfs_btree_prepare_update_v()
1950 &path[level].bp_oldreq.bpr_req, in nilfs_btree_prepare_update_v()
1951 &path[level].bp_newreq.bpr_req); in nilfs_btree_prepare_update_v()
1960 struct nilfs_btree_path *path, in nilfs_btree_commit_update_v() argument
1966 nilfs_dat_commit_update(dat, &path[level].bp_oldreq.bpr_req, in nilfs_btree_commit_update_v()
1967 &path[level].bp_newreq.bpr_req, in nilfs_btree_commit_update_v()
1970 if (buffer_nilfs_node(path[level].bp_bh)) { in nilfs_btree_commit_update_v()
1973 &path[level].bp_ctxt); in nilfs_btree_commit_update_v()
1974 path[level].bp_bh = path[level].bp_ctxt.bh; in nilfs_btree_commit_update_v()
1976 set_buffer_nilfs_volatile(path[level].bp_bh); in nilfs_btree_commit_update_v()
1978 parent = nilfs_btree_get_node(btree, path, level + 1, &ncmax); in nilfs_btree_commit_update_v()
1979 nilfs_btree_node_set_ptr(parent, path[level + 1].bp_index, in nilfs_btree_commit_update_v()
1980 path[level].bp_newreq.bpr_ptr, ncmax); in nilfs_btree_commit_update_v()
1984 struct nilfs_btree_path *path, in nilfs_btree_abort_update_v() argument
1987 nilfs_dat_abort_update(dat, &path[level].bp_oldreq.bpr_req, in nilfs_btree_abort_update_v()
1988 &path[level].bp_newreq.bpr_req); in nilfs_btree_abort_update_v()
1989 if (buffer_nilfs_node(path[level].bp_bh)) in nilfs_btree_abort_update_v()
1992 &path[level].bp_ctxt); in nilfs_btree_abort_update_v()
1996 struct nilfs_btree_path *path, in nilfs_btree_prepare_propagate_v() argument
2003 if (!buffer_nilfs_volatile(path[level].bp_bh)) { in nilfs_btree_prepare_propagate_v()
2004 ret = nilfs_btree_prepare_update_v(btree, path, level, dat); in nilfs_btree_prepare_propagate_v()
2009 !buffer_dirty(path[level].bp_bh)) { in nilfs_btree_prepare_propagate_v()
2011 WARN_ON(buffer_nilfs_volatile(path[level].bp_bh)); in nilfs_btree_prepare_propagate_v()
2012 ret = nilfs_btree_prepare_update_v(btree, path, level, dat); in nilfs_btree_prepare_propagate_v()
2024 nilfs_btree_abort_update_v(btree, path, level, dat); in nilfs_btree_prepare_propagate_v()
2025 if (!buffer_nilfs_volatile(path[level].bp_bh)) in nilfs_btree_prepare_propagate_v()
2026 nilfs_btree_abort_update_v(btree, path, level, dat); in nilfs_btree_prepare_propagate_v()
2031 struct nilfs_btree_path *path, in nilfs_btree_commit_propagate_v() argument
2038 if (!buffer_nilfs_volatile(path[minlevel].bp_bh)) in nilfs_btree_commit_propagate_v()
2039 nilfs_btree_commit_update_v(btree, path, minlevel, dat); in nilfs_btree_commit_propagate_v()
2042 nilfs_btree_commit_update_v(btree, path, level, dat); in nilfs_btree_commit_propagate_v()
2046 struct nilfs_btree_path *path, in nilfs_btree_propagate_v() argument
2056 path[level].bp_bh = bh; in nilfs_btree_propagate_v()
2057 ret = nilfs_btree_prepare_propagate_v(btree, path, level, &maxlevel, in nilfs_btree_propagate_v()
2062 if (buffer_nilfs_volatile(path[level].bp_bh)) { in nilfs_btree_propagate_v()
2063 parent = nilfs_btree_get_node(btree, path, level + 1, &ncmax); in nilfs_btree_propagate_v()
2065 path[level + 1].bp_index, in nilfs_btree_propagate_v()
2072 nilfs_btree_commit_propagate_v(btree, path, level, maxlevel, bh, dat); in nilfs_btree_propagate_v()
2075 brelse(path[level].bp_bh); in nilfs_btree_propagate_v()
2076 path[level].bp_bh = NULL; in nilfs_btree_propagate_v()
2083 struct nilfs_btree_path *path; in nilfs_btree_propagate() local
2090 path = nilfs_btree_alloc_path(); in nilfs_btree_propagate()
2091 if (path == NULL) in nilfs_btree_propagate()
2103 ret = nilfs_btree_do_lookup(btree, path, key, NULL, level + 1, 0); in nilfs_btree_propagate()
2114 nilfs_btree_propagate_v(btree, path, level, bh) : in nilfs_btree_propagate()
2115 nilfs_btree_propagate_p(btree, path, level, bh); in nilfs_btree_propagate()
2118 nilfs_btree_free_path(path); in nilfs_btree_propagate()
2203 struct nilfs_btree_path *path, in nilfs_btree_assign_p() argument
2214 parent = nilfs_btree_get_node(btree, path, level + 1, &ncmax); in nilfs_btree_assign_p()
2215 ptr = nilfs_btree_node_get_ptr(parent, path[level + 1].bp_index, in nilfs_btree_assign_p()
2218 path[level].bp_ctxt.oldkey = ptr; in nilfs_btree_assign_p()
2219 path[level].bp_ctxt.newkey = blocknr; in nilfs_btree_assign_p()
2220 path[level].bp_ctxt.bh = *bh; in nilfs_btree_assign_p()
2223 &path[level].bp_ctxt); in nilfs_btree_assign_p()
2228 &path[level].bp_ctxt); in nilfs_btree_assign_p()
2229 *bh = path[level].bp_ctxt.bh; in nilfs_btree_assign_p()
2232 nilfs_btree_node_set_ptr(parent, path[level + 1].bp_index, blocknr, in nilfs_btree_assign_p()
2235 key = nilfs_btree_node_get_key(parent, path[level + 1].bp_index); in nilfs_btree_assign_p()
2245 struct nilfs_btree_path *path, in nilfs_btree_assign_v() argument
2258 parent = nilfs_btree_get_node(btree, path, level + 1, &ncmax); in nilfs_btree_assign_v()
2259 ptr = nilfs_btree_node_get_ptr(parent, path[level + 1].bp_index, in nilfs_btree_assign_v()
2267 key = nilfs_btree_node_get_key(parent, path[level + 1].bp_index); in nilfs_btree_assign_v()
2280 struct nilfs_btree_path *path; in nilfs_btree_assign() local
2285 path = nilfs_btree_alloc_path(); in nilfs_btree_assign()
2286 if (path == NULL) in nilfs_btree_assign()
2298 ret = nilfs_btree_do_lookup(btree, path, key, NULL, level + 1, 0); in nilfs_btree_assign()
2305 nilfs_btree_assign_v(btree, path, level, bh, blocknr, binfo) : in nilfs_btree_assign()
2306 nilfs_btree_assign_p(btree, path, level, bh, blocknr, binfo); in nilfs_btree_assign()
2309 nilfs_btree_free_path(path); in nilfs_btree_assign()
2344 struct nilfs_btree_path *path; in nilfs_btree_mark() local
2348 path = nilfs_btree_alloc_path(); in nilfs_btree_mark()
2349 if (path == NULL) in nilfs_btree_mark()
2352 ret = nilfs_btree_do_lookup(btree, path, key, &ptr, level + 1, 0); in nilfs_btree_mark()
2370 nilfs_btree_free_path(path); in nilfs_btree_mark()