Lines Matching refs:btree
58 static int nilfs_btree_get_new_block(const struct nilfs_bmap *btree, in nilfs_btree_get_new_block() argument
61 struct inode *btnc_inode = NILFS_BMAP_I(btree)->i_assoc_inode; in nilfs_btree_get_new_block()
112 static int nilfs_btree_node_size(const struct nilfs_bmap *btree) in nilfs_btree_node_size() argument
114 return i_blocksize(btree->b_inode); in nilfs_btree_node_size()
117 static int nilfs_btree_nchildren_per_block(const struct nilfs_bmap *btree) in nilfs_btree_nchildren_per_block() argument
119 return btree->b_nchildren_per_block; in nilfs_btree_nchildren_per_block()
410 nilfs_btree_get_root(const struct nilfs_bmap *btree) in nilfs_btree_get_root() argument
412 return (struct nilfs_btree_node *)btree->b_u.u_data; in nilfs_btree_get_root()
427 static int nilfs_btree_height(const struct nilfs_bmap *btree) in nilfs_btree_height() argument
429 return nilfs_btree_node_get_level(nilfs_btree_get_root(btree)) + 1; in nilfs_btree_height()
433 nilfs_btree_get_node(const struct nilfs_bmap *btree, in nilfs_btree_get_node() argument
439 if (level == nilfs_btree_height(btree) - 1) { in nilfs_btree_get_node()
440 node = nilfs_btree_get_root(btree); in nilfs_btree_get_node()
444 *ncmaxp = nilfs_btree_nchildren_per_block(btree); in nilfs_btree_get_node()
449 static int nilfs_btree_bad_node(const struct nilfs_bmap *btree, in nilfs_btree_bad_node() argument
454 nilfs_crit(btree->b_inode->i_sb, in nilfs_btree_bad_node()
456 btree->b_inode->i_ino, in nilfs_btree_bad_node()
470 static int __nilfs_btree_get_block(const struct nilfs_bmap *btree, __u64 ptr, in __nilfs_btree_get_block() argument
474 struct inode *btnc_inode = NILFS_BMAP_I(btree)->i_assoc_inode; in __nilfs_btree_get_block()
513 nilfs_err(btree->b_inode->i_sb, in __nilfs_btree_get_block()
515 btree->b_inode->i_ino, (unsigned long long)ptr); in __nilfs_btree_get_block()
531 static int nilfs_btree_get_block(const struct nilfs_bmap *btree, __u64 ptr, in nilfs_btree_get_block() argument
534 return __nilfs_btree_get_block(btree, ptr, bhp, NULL); in nilfs_btree_get_block()
537 static int nilfs_btree_do_lookup(const struct nilfs_bmap *btree, in nilfs_btree_do_lookup() argument
547 node = nilfs_btree_get_root(btree); in nilfs_btree_do_lookup()
558 ncmax = nilfs_btree_nchildren_per_block(btree); in nilfs_btree_do_lookup()
563 p.node = nilfs_btree_get_node(btree, path, level + 1, in nilfs_btree_do_lookup()
569 ret = __nilfs_btree_get_block(btree, ptr, &path[level].bp_bh, in nilfs_btree_do_lookup()
575 if (nilfs_btree_bad_node(btree, node, level)) in nilfs_btree_do_lookup()
599 static int nilfs_btree_do_lookup_last(const struct nilfs_bmap *btree, in nilfs_btree_do_lookup_last() argument
607 node = nilfs_btree_get_root(btree); in nilfs_btree_do_lookup_last()
616 ncmax = nilfs_btree_nchildren_per_block(btree); in nilfs_btree_do_lookup_last()
619 ret = nilfs_btree_get_block(btree, ptr, &path[level].bp_bh); in nilfs_btree_do_lookup_last()
623 if (nilfs_btree_bad_node(btree, node, level)) in nilfs_btree_do_lookup_last()
648 static int nilfs_btree_get_next_key(const struct nilfs_bmap *btree, in nilfs_btree_get_next_key() argument
653 int maxlevel = nilfs_btree_height(btree) - 1; in nilfs_btree_get_next_key()
660 node = nilfs_btree_get_root(btree); in nilfs_btree_get_next_key()
676 static int nilfs_btree_lookup(const struct nilfs_bmap *btree, in nilfs_btree_lookup() argument
686 ret = nilfs_btree_do_lookup(btree, path, key, ptrp, level, 0); in nilfs_btree_lookup()
693 static int nilfs_btree_lookup_contig(const struct nilfs_bmap *btree, in nilfs_btree_lookup_contig() argument
710 ret = nilfs_btree_do_lookup(btree, path, key, &ptr, level, 1); in nilfs_btree_lookup_contig()
714 if (NILFS_BMAP_USE_VBN(btree)) { in nilfs_btree_lookup_contig()
715 dat = nilfs_bmap_get_dat(btree); in nilfs_btree_lookup_contig()
725 maxlevel = nilfs_btree_height(btree) - 1; in nilfs_btree_lookup_contig()
726 node = nilfs_btree_get_node(btree, path, level, &ncmax); in nilfs_btree_lookup_contig()
749 p.node = nilfs_btree_get_node(btree, path, level + 1, &p.ncmax); in nilfs_btree_lookup_contig()
761 ret = __nilfs_btree_get_block(btree, ptr2, &path[level].bp_bh, in nilfs_btree_lookup_contig()
766 ncmax = nilfs_btree_nchildren_per_block(btree); in nilfs_btree_lookup_contig()
778 static void nilfs_btree_promote_key(struct nilfs_bmap *btree, in nilfs_btree_promote_key() argument
782 if (level < nilfs_btree_height(btree) - 1) { in nilfs_btree_promote_key()
790 (++level < nilfs_btree_height(btree) - 1)); in nilfs_btree_promote_key()
794 if (level == nilfs_btree_height(btree) - 1) { in nilfs_btree_promote_key()
795 nilfs_btree_node_set_key(nilfs_btree_get_root(btree), in nilfs_btree_promote_key()
800 static void nilfs_btree_do_insert(struct nilfs_bmap *btree, in nilfs_btree_do_insert() argument
807 if (level < nilfs_btree_height(btree) - 1) { in nilfs_btree_do_insert()
809 ncblk = nilfs_btree_nchildren_per_block(btree); in nilfs_btree_do_insert()
816 nilfs_btree_promote_key(btree, path, level + 1, in nilfs_btree_do_insert()
820 node = nilfs_btree_get_root(btree); in nilfs_btree_do_insert()
827 static void nilfs_btree_carry_left(struct nilfs_bmap *btree, in nilfs_btree_carry_left() argument
838 ncblk = nilfs_btree_nchildren_per_block(btree); in nilfs_btree_carry_left()
855 nilfs_btree_promote_key(btree, path, level + 1, in nilfs_btree_carry_left()
870 nilfs_btree_do_insert(btree, path, level, keyp, ptrp); in nilfs_btree_carry_left()
873 static void nilfs_btree_carry_right(struct nilfs_bmap *btree, in nilfs_btree_carry_right() argument
884 ncblk = nilfs_btree_nchildren_per_block(btree); in nilfs_btree_carry_right()
902 nilfs_btree_promote_key(btree, path, level + 1, in nilfs_btree_carry_right()
917 nilfs_btree_do_insert(btree, path, level, keyp, ptrp); in nilfs_btree_carry_right()
920 static void nilfs_btree_split(struct nilfs_bmap *btree, in nilfs_btree_split() argument
930 ncblk = nilfs_btree_nchildren_per_block(btree); in nilfs_btree_split()
958 nilfs_btree_do_insert(btree, path, level, keyp, ptrp); in nilfs_btree_split()
970 static void nilfs_btree_grow(struct nilfs_bmap *btree, in nilfs_btree_grow() argument
977 root = nilfs_btree_get_root(btree); in nilfs_btree_grow()
979 ncblk = nilfs_btree_nchildren_per_block(btree); in nilfs_btree_grow()
993 nilfs_btree_do_insert(btree, path, level, keyp, ptrp); in nilfs_btree_grow()
999 static __u64 nilfs_btree_find_near(const struct nilfs_bmap *btree, in nilfs_btree_find_near() argument
1011 node = nilfs_btree_get_node(btree, path, level, &ncmax); in nilfs_btree_find_near()
1019 if (level <= nilfs_btree_height(btree) - 1) { in nilfs_btree_find_near()
1020 node = nilfs_btree_get_node(btree, path, level, &ncmax); in nilfs_btree_find_near()
1028 static __u64 nilfs_btree_find_target_v(const struct nilfs_bmap *btree, in nilfs_btree_find_target_v() argument
1034 ptr = nilfs_bmap_find_target_seq(btree, key); in nilfs_btree_find_target_v()
1039 ptr = nilfs_btree_find_near(btree, path); in nilfs_btree_find_target_v()
1045 return nilfs_bmap_find_target_in_group(btree); in nilfs_btree_find_target_v()
1048 static int nilfs_btree_prepare_insert(struct nilfs_bmap *btree, in nilfs_btree_prepare_insert() argument
1063 if (NILFS_BMAP_USE_VBN(btree)) { in nilfs_btree_prepare_insert()
1065 nilfs_btree_find_target_v(btree, path, key); in nilfs_btree_prepare_insert()
1066 dat = nilfs_bmap_get_dat(btree); in nilfs_btree_prepare_insert()
1069 ret = nilfs_bmap_prepare_alloc_ptr(btree, &path[level].bp_newreq, dat); in nilfs_btree_prepare_insert()
1073 ncblk = nilfs_btree_nchildren_per_block(btree); in nilfs_btree_prepare_insert()
1076 level < nilfs_btree_height(btree) - 1; in nilfs_btree_prepare_insert()
1085 parent = nilfs_btree_get_node(btree, path, level + 1, &ncmax); in nilfs_btree_prepare_insert()
1092 ret = nilfs_btree_get_block(btree, sibptr, &bh); in nilfs_btree_prepare_insert()
1110 ret = nilfs_btree_get_block(btree, sibptr, &bh); in nilfs_btree_prepare_insert()
1127 ret = nilfs_bmap_prepare_alloc_ptr(btree, in nilfs_btree_prepare_insert()
1131 ret = nilfs_btree_get_new_block(btree, in nilfs_btree_prepare_insert()
1146 node = nilfs_btree_get_root(btree); in nilfs_btree_prepare_insert()
1156 ret = nilfs_bmap_prepare_alloc_ptr(btree, &path[level].bp_newreq, dat); in nilfs_btree_prepare_insert()
1159 ret = nilfs_btree_get_new_block(btree, path[level].bp_newreq.bpr_ptr, in nilfs_btree_prepare_insert()
1182 nilfs_bmap_abort_alloc_ptr(btree, &path[level].bp_newreq, dat); in nilfs_btree_prepare_insert()
1186 nilfs_bmap_abort_alloc_ptr(btree, &path[level].bp_newreq, dat); in nilfs_btree_prepare_insert()
1190 nilfs_bmap_abort_alloc_ptr(btree, &path[level].bp_newreq, dat); in nilfs_btree_prepare_insert()
1197 static void nilfs_btree_commit_insert(struct nilfs_bmap *btree, in nilfs_btree_commit_insert() argument
1206 if (NILFS_BMAP_USE_VBN(btree)) { in nilfs_btree_commit_insert()
1207 nilfs_bmap_set_target_v(btree, key, ptr); in nilfs_btree_commit_insert()
1208 dat = nilfs_bmap_get_dat(btree); in nilfs_btree_commit_insert()
1212 nilfs_bmap_commit_alloc_ptr(btree, in nilfs_btree_commit_insert()
1214 path[level].bp_op(btree, path, level, &key, &ptr); in nilfs_btree_commit_insert()
1217 if (!nilfs_bmap_dirty(btree)) in nilfs_btree_commit_insert()
1218 nilfs_bmap_set_dirty(btree); in nilfs_btree_commit_insert()
1221 static int nilfs_btree_insert(struct nilfs_bmap *btree, __u64 key, __u64 ptr) in nilfs_btree_insert() argument
1231 ret = nilfs_btree_do_lookup(btree, path, key, NULL, in nilfs_btree_insert()
1239 ret = nilfs_btree_prepare_insert(btree, path, &level, key, ptr, &stats); in nilfs_btree_insert()
1242 nilfs_btree_commit_insert(btree, path, level, key, ptr); in nilfs_btree_insert()
1243 nilfs_inode_add_blocks(btree->b_inode, stats.bs_nblocks); in nilfs_btree_insert()
1250 static void nilfs_btree_do_delete(struct nilfs_bmap *btree, in nilfs_btree_do_delete() argument
1257 if (level < nilfs_btree_height(btree) - 1) { in nilfs_btree_do_delete()
1259 ncblk = nilfs_btree_nchildren_per_block(btree); in nilfs_btree_do_delete()
1265 nilfs_btree_promote_key(btree, path, level + 1, in nilfs_btree_do_delete()
1268 node = nilfs_btree_get_root(btree); in nilfs_btree_do_delete()
1275 static void nilfs_btree_borrow_left(struct nilfs_bmap *btree, in nilfs_btree_borrow_left() argument
1282 nilfs_btree_do_delete(btree, path, level, keyp, ptrp); in nilfs_btree_borrow_left()
1288 ncblk = nilfs_btree_nchildren_per_block(btree); in nilfs_btree_borrow_left()
1299 nilfs_btree_promote_key(btree, path, level + 1, in nilfs_btree_borrow_left()
1307 static void nilfs_btree_borrow_right(struct nilfs_bmap *btree, in nilfs_btree_borrow_right() argument
1314 nilfs_btree_do_delete(btree, path, level, keyp, ptrp); in nilfs_btree_borrow_right()
1320 ncblk = nilfs_btree_nchildren_per_block(btree); in nilfs_btree_borrow_right()
1332 nilfs_btree_promote_key(btree, path, level + 1, in nilfs_btree_borrow_right()
1340 static void nilfs_btree_concat_left(struct nilfs_bmap *btree, in nilfs_btree_concat_left() argument
1347 nilfs_btree_do_delete(btree, path, level, keyp, ptrp); in nilfs_btree_concat_left()
1351 ncblk = nilfs_btree_nchildren_per_block(btree); in nilfs_btree_concat_left()
1366 static void nilfs_btree_concat_right(struct nilfs_bmap *btree, in nilfs_btree_concat_right() argument
1373 nilfs_btree_do_delete(btree, path, level, keyp, ptrp); in nilfs_btree_concat_right()
1377 ncblk = nilfs_btree_nchildren_per_block(btree); in nilfs_btree_concat_right()
1391 static void nilfs_btree_shrink(struct nilfs_bmap *btree, in nilfs_btree_shrink() argument
1398 nilfs_btree_do_delete(btree, path, level, keyp, ptrp); in nilfs_btree_shrink()
1400 root = nilfs_btree_get_root(btree); in nilfs_btree_shrink()
1402 ncblk = nilfs_btree_nchildren_per_block(btree); in nilfs_btree_shrink()
1415 static void nilfs_btree_nop(struct nilfs_bmap *btree, in nilfs_btree_nop() argument
1421 static int nilfs_btree_prepare_delete(struct nilfs_bmap *btree, in nilfs_btree_prepare_delete() argument
1434 ncmin = NILFS_BTREE_NODE_NCHILDREN_MIN(nilfs_btree_node_size(btree)); in nilfs_btree_prepare_delete()
1435 ncblk = nilfs_btree_nchildren_per_block(btree); in nilfs_btree_prepare_delete()
1438 level < nilfs_btree_height(btree) - 1; in nilfs_btree_prepare_delete()
1443 ret = nilfs_bmap_prepare_end_ptr(btree, in nilfs_btree_prepare_delete()
1454 parent = nilfs_btree_get_node(btree, path, level + 1, &ncmax); in nilfs_btree_prepare_delete()
1462 ret = nilfs_btree_get_block(btree, sibptr, &bh); in nilfs_btree_prepare_delete()
1482 ret = nilfs_btree_get_block(btree, sibptr, &bh); in nilfs_btree_prepare_delete()
1508 WARN_ON(level != nilfs_btree_height(btree) - 2); in nilfs_btree_prepare_delete()
1529 node = nilfs_btree_get_root(btree); in nilfs_btree_prepare_delete()
1534 ret = nilfs_bmap_prepare_end_ptr(btree, &path[level].bp_oldreq, dat); in nilfs_btree_prepare_delete()
1545 nilfs_bmap_abort_end_ptr(btree, &path[level].bp_oldreq, dat); in nilfs_btree_prepare_delete()
1549 nilfs_bmap_abort_end_ptr(btree, &path[level].bp_oldreq, dat); in nilfs_btree_prepare_delete()
1556 static void nilfs_btree_commit_delete(struct nilfs_bmap *btree, in nilfs_btree_commit_delete() argument
1563 nilfs_bmap_commit_end_ptr(btree, &path[level].bp_oldreq, dat); in nilfs_btree_commit_delete()
1564 path[level].bp_op(btree, path, level, NULL, NULL); in nilfs_btree_commit_delete()
1567 if (!nilfs_bmap_dirty(btree)) in nilfs_btree_commit_delete()
1568 nilfs_bmap_set_dirty(btree); in nilfs_btree_commit_delete()
1571 static int nilfs_btree_delete(struct nilfs_bmap *btree, __u64 key) in nilfs_btree_delete() argument
1583 ret = nilfs_btree_do_lookup(btree, path, key, NULL, in nilfs_btree_delete()
1589 dat = NILFS_BMAP_USE_VBN(btree) ? nilfs_bmap_get_dat(btree) : NULL; in nilfs_btree_delete()
1591 ret = nilfs_btree_prepare_delete(btree, path, &level, &stats, dat); in nilfs_btree_delete()
1594 nilfs_btree_commit_delete(btree, path, level, dat); in nilfs_btree_delete()
1595 nilfs_inode_sub_blocks(btree->b_inode, stats.bs_nblocks); in nilfs_btree_delete()
1602 static int nilfs_btree_seek_key(const struct nilfs_bmap *btree, __u64 start, in nilfs_btree_seek_key() argument
1613 ret = nilfs_btree_do_lookup(btree, path, start, NULL, minlevel, 0); in nilfs_btree_seek_key()
1617 ret = nilfs_btree_get_next_key(btree, path, minlevel, keyp); in nilfs_btree_seek_key()
1623 static int nilfs_btree_last_key(const struct nilfs_bmap *btree, __u64 *keyp) in nilfs_btree_last_key() argument
1632 ret = nilfs_btree_do_lookup_last(btree, path, keyp, NULL); in nilfs_btree_last_key()
1639 static int nilfs_btree_check_delete(struct nilfs_bmap *btree, __u64 key) in nilfs_btree_check_delete() argument
1647 root = nilfs_btree_get_root(btree); in nilfs_btree_check_delete()
1648 switch (nilfs_btree_height(btree)) { in nilfs_btree_check_delete()
1659 ret = nilfs_btree_get_block(btree, ptr, &bh); in nilfs_btree_check_delete()
1678 static int nilfs_btree_gather_data(struct nilfs_bmap *btree, in nilfs_btree_gather_data() argument
1688 root = nilfs_btree_get_root(btree); in nilfs_btree_gather_data()
1689 switch (nilfs_btree_height(btree)) { in nilfs_btree_gather_data()
1700 ret = nilfs_btree_get_block(btree, ptr, &bh); in nilfs_btree_gather_data()
1704 ncmax = nilfs_btree_nchildren_per_block(btree); in nilfs_btree_gather_data()
1728 nilfs_btree_prepare_convert_and_insert(struct nilfs_bmap *btree, __u64 key, in nilfs_btree_prepare_convert_and_insert() argument
1742 if (NILFS_BMAP_USE_VBN(btree)) { in nilfs_btree_prepare_convert_and_insert()
1743 dreq->bpr_ptr = nilfs_btree_find_target_v(btree, NULL, key); in nilfs_btree_prepare_convert_and_insert()
1744 dat = nilfs_bmap_get_dat(btree); in nilfs_btree_prepare_convert_and_insert()
1747 ret = nilfs_attach_btree_node_cache(&NILFS_BMAP_I(btree)->vfs_inode); in nilfs_btree_prepare_convert_and_insert()
1751 ret = nilfs_bmap_prepare_alloc_ptr(btree, dreq, dat); in nilfs_btree_prepare_convert_and_insert()
1759 ret = nilfs_bmap_prepare_alloc_ptr(btree, nreq, dat); in nilfs_btree_prepare_convert_and_insert()
1763 ret = nilfs_btree_get_new_block(btree, nreq->bpr_ptr, &bh); in nilfs_btree_prepare_convert_and_insert()
1776 nilfs_bmap_abort_alloc_ptr(btree, nreq, dat); in nilfs_btree_prepare_convert_and_insert()
1778 nilfs_bmap_abort_alloc_ptr(btree, dreq, dat); in nilfs_btree_prepare_convert_and_insert()
1785 nilfs_btree_commit_convert_and_insert(struct nilfs_bmap *btree, in nilfs_btree_commit_convert_and_insert() argument
1799 if (btree->b_ops->bop_clear != NULL) in nilfs_btree_commit_convert_and_insert()
1800 btree->b_ops->bop_clear(btree); in nilfs_btree_commit_convert_and_insert()
1806 dat = NILFS_BMAP_USE_VBN(btree) ? nilfs_bmap_get_dat(btree) : NULL; in nilfs_btree_commit_convert_and_insert()
1807 __nilfs_btree_init(btree); in nilfs_btree_commit_convert_and_insert()
1809 nilfs_bmap_commit_alloc_ptr(btree, dreq, dat); in nilfs_btree_commit_convert_and_insert()
1810 nilfs_bmap_commit_alloc_ptr(btree, nreq, dat); in nilfs_btree_commit_convert_and_insert()
1814 ncblk = nilfs_btree_nchildren_per_block(btree); in nilfs_btree_commit_convert_and_insert()
1819 if (!nilfs_bmap_dirty(btree)) in nilfs_btree_commit_convert_and_insert()
1820 nilfs_bmap_set_dirty(btree); in nilfs_btree_commit_convert_and_insert()
1825 node = nilfs_btree_get_root(btree); in nilfs_btree_commit_convert_and_insert()
1831 nilfs_bmap_commit_alloc_ptr(btree, dreq, dat); in nilfs_btree_commit_convert_and_insert()
1834 node = nilfs_btree_get_root(btree); in nilfs_btree_commit_convert_and_insert()
1840 if (!nilfs_bmap_dirty(btree)) in nilfs_btree_commit_convert_and_insert()
1841 nilfs_bmap_set_dirty(btree); in nilfs_btree_commit_convert_and_insert()
1844 if (NILFS_BMAP_USE_VBN(btree)) in nilfs_btree_commit_convert_and_insert()
1845 nilfs_bmap_set_target_v(btree, key, dreq->bpr_ptr); in nilfs_btree_commit_convert_and_insert()
1857 int nilfs_btree_convert_and_insert(struct nilfs_bmap *btree, in nilfs_btree_convert_and_insert() argument
1870 nilfs_btree_node_size(btree))) { in nilfs_btree_convert_and_insert()
1879 ret = nilfs_btree_prepare_convert_and_insert(btree, key, di, ni, &bh, in nilfs_btree_convert_and_insert()
1883 nilfs_btree_commit_convert_and_insert(btree, key, ptr, keys, ptrs, n, in nilfs_btree_convert_and_insert()
1885 nilfs_inode_add_blocks(btree->b_inode, stats.bs_nblocks); in nilfs_btree_convert_and_insert()
1889 static int nilfs_btree_propagate_p(struct nilfs_bmap *btree, in nilfs_btree_propagate_p() argument
1894 while ((++level < nilfs_btree_height(btree) - 1) && in nilfs_btree_propagate_p()
1901 static int nilfs_btree_prepare_update_v(struct nilfs_bmap *btree, in nilfs_btree_prepare_update_v() argument
1908 parent = nilfs_btree_get_node(btree, path, level + 1, &ncmax); in nilfs_btree_prepare_update_v()
1923 NILFS_BMAP_I(btree)->i_assoc_inode->i_mapping, in nilfs_btree_prepare_update_v()
1936 static void nilfs_btree_commit_update_v(struct nilfs_bmap *btree, in nilfs_btree_commit_update_v() argument
1945 btree->b_ptr_type == NILFS_BMAP_PTR_VS); in nilfs_btree_commit_update_v()
1949 NILFS_BMAP_I(btree)->i_assoc_inode->i_mapping, in nilfs_btree_commit_update_v()
1955 parent = nilfs_btree_get_node(btree, path, level + 1, &ncmax); in nilfs_btree_commit_update_v()
1960 static void nilfs_btree_abort_update_v(struct nilfs_bmap *btree, in nilfs_btree_abort_update_v() argument
1968 NILFS_BMAP_I(btree)->i_assoc_inode->i_mapping, in nilfs_btree_abort_update_v()
1972 static int nilfs_btree_prepare_propagate_v(struct nilfs_bmap *btree, in nilfs_btree_prepare_propagate_v() argument
1981 ret = nilfs_btree_prepare_update_v(btree, path, level, dat); in nilfs_btree_prepare_propagate_v()
1985 while ((++level < nilfs_btree_height(btree) - 1) && in nilfs_btree_prepare_propagate_v()
1989 ret = nilfs_btree_prepare_update_v(btree, path, level, dat); in nilfs_btree_prepare_propagate_v()
2001 nilfs_btree_abort_update_v(btree, path, level, dat); in nilfs_btree_prepare_propagate_v()
2003 nilfs_btree_abort_update_v(btree, path, level, dat); in nilfs_btree_prepare_propagate_v()
2007 static void nilfs_btree_commit_propagate_v(struct nilfs_bmap *btree, in nilfs_btree_commit_propagate_v() argument
2016 nilfs_btree_commit_update_v(btree, path, minlevel, dat); in nilfs_btree_commit_propagate_v()
2019 nilfs_btree_commit_update_v(btree, path, level, dat); in nilfs_btree_commit_propagate_v()
2022 static int nilfs_btree_propagate_v(struct nilfs_bmap *btree, in nilfs_btree_propagate_v() argument
2028 struct inode *dat = nilfs_bmap_get_dat(btree); in nilfs_btree_propagate_v()
2034 ret = nilfs_btree_prepare_propagate_v(btree, path, level, &maxlevel, in nilfs_btree_propagate_v()
2040 parent = nilfs_btree_get_node(btree, path, level + 1, &ncmax); in nilfs_btree_propagate_v()
2049 nilfs_btree_commit_propagate_v(btree, path, level, maxlevel, bh, dat); in nilfs_btree_propagate_v()
2057 static int nilfs_btree_propagate(struct nilfs_bmap *btree, in nilfs_btree_propagate() argument
2076 key = nilfs_bmap_data_get_key(btree, bh); in nilfs_btree_propagate()
2080 ret = nilfs_btree_do_lookup(btree, path, key, NULL, level + 1, 0); in nilfs_btree_propagate()
2083 nilfs_crit(btree->b_inode->i_sb, in nilfs_btree_propagate()
2085 btree->b_inode->i_ino, in nilfs_btree_propagate()
2090 ret = NILFS_BMAP_USE_VBN(btree) ? in nilfs_btree_propagate()
2091 nilfs_btree_propagate_v(btree, path, level, bh) : in nilfs_btree_propagate()
2092 nilfs_btree_propagate_p(btree, path, level, bh); in nilfs_btree_propagate()
2100 static int nilfs_btree_propagate_gc(struct nilfs_bmap *btree, in nilfs_btree_propagate_gc() argument
2103 return nilfs_dat_mark_dirty(nilfs_bmap_get_dat(btree), bh->b_blocknr); in nilfs_btree_propagate_gc()
2106 static void nilfs_btree_add_dirty_buffer(struct nilfs_bmap *btree, in nilfs_btree_add_dirty_buffer() argument
2123 nilfs_warn(btree->b_inode->i_sb, in nilfs_btree_add_dirty_buffer()
2126 btree->b_inode->i_ino, in nilfs_btree_add_dirty_buffer()
2141 static void nilfs_btree_lookup_dirty_buffers(struct nilfs_bmap *btree, in nilfs_btree_lookup_dirty_buffers() argument
2144 struct inode *btnc_inode = NILFS_BMAP_I(btree)->i_assoc_inode; in nilfs_btree_lookup_dirty_buffers()
2165 nilfs_btree_add_dirty_buffer(btree, in nilfs_btree_lookup_dirty_buffers()
2179 static int nilfs_btree_assign_p(struct nilfs_bmap *btree, in nilfs_btree_assign_p() argument
2191 parent = nilfs_btree_get_node(btree, path, level + 1, &ncmax); in nilfs_btree_assign_p()
2199 NILFS_BMAP_I(btree)->i_assoc_inode->i_mapping, in nilfs_btree_assign_p()
2204 NILFS_BMAP_I(btree)->i_assoc_inode->i_mapping, in nilfs_btree_assign_p()
2220 static int nilfs_btree_assign_v(struct nilfs_bmap *btree, in nilfs_btree_assign_v() argument
2228 struct inode *dat = nilfs_bmap_get_dat(btree); in nilfs_btree_assign_v()
2234 parent = nilfs_btree_get_node(btree, path, level + 1, &ncmax); in nilfs_btree_assign_v()
2251 static int nilfs_btree_assign(struct nilfs_bmap *btree, in nilfs_btree_assign() argument
2270 key = nilfs_bmap_data_get_key(btree, *bh); in nilfs_btree_assign()
2274 ret = nilfs_btree_do_lookup(btree, path, key, NULL, level + 1, 0); in nilfs_btree_assign()
2280 ret = NILFS_BMAP_USE_VBN(btree) ? in nilfs_btree_assign()
2281 nilfs_btree_assign_v(btree, path, level, bh, blocknr, binfo) : in nilfs_btree_assign()
2282 nilfs_btree_assign_p(btree, path, level, bh, blocknr, binfo); in nilfs_btree_assign()
2290 static int nilfs_btree_assign_gc(struct nilfs_bmap *btree, in nilfs_btree_assign_gc() argument
2299 ret = nilfs_dat_move(nilfs_bmap_get_dat(btree), (*bh)->b_blocknr, in nilfs_btree_assign_gc()
2308 key = nilfs_bmap_data_get_key(btree, *bh); in nilfs_btree_assign_gc()
2317 static int nilfs_btree_mark(struct nilfs_bmap *btree, __u64 key, int level) in nilfs_btree_mark() argument
2328 ret = nilfs_btree_do_lookup(btree, path, key, &ptr, level + 1, 0); in nilfs_btree_mark()
2333 ret = nilfs_btree_get_block(btree, ptr, &bh); in nilfs_btree_mark()
2342 if (!nilfs_bmap_dirty(btree)) in nilfs_btree_mark()
2343 nilfs_bmap_set_dirty(btree); in nilfs_btree_mark()