ctree.c (42c9419a4c01910e9c46b0c2bb9090f76295bf01) | ctree.c (e23efd8e8767165a6103cf0a4fe273f6b9f182f2) |
---|---|
1// SPDX-License-Identifier: GPL-2.0 2/* 3 * Copyright (C) 2007,2008 Oracle. All rights reserved. 4 */ 5 6#include <linux/sched.h> 7#include <linux/slab.h> 8#include <linux/rbtree.h> --- 2598 unchanged lines hidden (view full) --- 2607 return ret; 2608 } 2609 ret = btrfs_tree_mod_log_eb_copy(dst, src, dst_nritems, 0, push_items); 2610 if (ret) { 2611 btrfs_abort_transaction(trans, ret); 2612 return ret; 2613 } 2614 copy_extent_buffer(dst, src, | 1// SPDX-License-Identifier: GPL-2.0 2/* 3 * Copyright (C) 2007,2008 Oracle. All rights reserved. 4 */ 5 6#include <linux/sched.h> 7#include <linux/slab.h> 8#include <linux/rbtree.h> --- 2598 unchanged lines hidden (view full) --- 2607 return ret; 2608 } 2609 ret = btrfs_tree_mod_log_eb_copy(dst, src, dst_nritems, 0, push_items); 2610 if (ret) { 2611 btrfs_abort_transaction(trans, ret); 2612 return ret; 2613 } 2614 copy_extent_buffer(dst, src, |
2615 btrfs_node_key_ptr_offset(dst_nritems), 2616 btrfs_node_key_ptr_offset(0), | 2615 btrfs_node_key_ptr_offset(dst, dst_nritems), 2616 btrfs_node_key_ptr_offset(src, 0), |
2617 push_items * sizeof(struct btrfs_key_ptr)); 2618 2619 if (push_items < src_nritems) { 2620 /* 2621 * Don't call btrfs_tree_mod_log_insert_move() here, key removal 2622 * was already fully logged by btrfs_tree_mod_log_eb_copy() above. 2623 */ | 2617 push_items * sizeof(struct btrfs_key_ptr)); 2618 2619 if (push_items < src_nritems) { 2620 /* 2621 * Don't call btrfs_tree_mod_log_insert_move() here, key removal 2622 * was already fully logged by btrfs_tree_mod_log_eb_copy() above. 2623 */ |
2624 memmove_extent_buffer(src, btrfs_node_key_ptr_offset(0), 2625 btrfs_node_key_ptr_offset(push_items), | 2624 memmove_extent_buffer(src, btrfs_node_key_ptr_offset(src, 0), 2625 btrfs_node_key_ptr_offset(src, push_items), |
2626 (src_nritems - push_items) * 2627 sizeof(struct btrfs_key_ptr)); 2628 } 2629 btrfs_set_header_nritems(src, src_nritems - push_items); 2630 btrfs_set_header_nritems(dst, dst_nritems + push_items); 2631 btrfs_mark_buffer_dirty(src); 2632 btrfs_mark_buffer_dirty(dst); 2633 --- 43 unchanged lines hidden (view full) --- 2677 /* dst is the right eb, src is the middle eb */ 2678 if (check_sibling_keys(src, dst)) { 2679 ret = -EUCLEAN; 2680 btrfs_abort_transaction(trans, ret); 2681 return ret; 2682 } 2683 ret = btrfs_tree_mod_log_insert_move(dst, push_items, 0, dst_nritems); 2684 BUG_ON(ret < 0); | 2626 (src_nritems - push_items) * 2627 sizeof(struct btrfs_key_ptr)); 2628 } 2629 btrfs_set_header_nritems(src, src_nritems - push_items); 2630 btrfs_set_header_nritems(dst, dst_nritems + push_items); 2631 btrfs_mark_buffer_dirty(src); 2632 btrfs_mark_buffer_dirty(dst); 2633 --- 43 unchanged lines hidden (view full) --- 2677 /* dst is the right eb, src is the middle eb */ 2678 if (check_sibling_keys(src, dst)) { 2679 ret = -EUCLEAN; 2680 btrfs_abort_transaction(trans, ret); 2681 return ret; 2682 } 2683 ret = btrfs_tree_mod_log_insert_move(dst, push_items, 0, dst_nritems); 2684 BUG_ON(ret < 0); |
2685 memmove_extent_buffer(dst, btrfs_node_key_ptr_offset(push_items), 2686 btrfs_node_key_ptr_offset(0), | 2685 memmove_extent_buffer(dst, btrfs_node_key_ptr_offset(dst, push_items), 2686 btrfs_node_key_ptr_offset(dst, 0), |
2687 (dst_nritems) * 2688 sizeof(struct btrfs_key_ptr)); 2689 2690 ret = btrfs_tree_mod_log_eb_copy(dst, src, 0, src_nritems - push_items, 2691 push_items); 2692 if (ret) { 2693 btrfs_abort_transaction(trans, ret); 2694 return ret; 2695 } 2696 copy_extent_buffer(dst, src, | 2687 (dst_nritems) * 2688 sizeof(struct btrfs_key_ptr)); 2689 2690 ret = btrfs_tree_mod_log_eb_copy(dst, src, 0, src_nritems - push_items, 2691 push_items); 2692 if (ret) { 2693 btrfs_abort_transaction(trans, ret); 2694 return ret; 2695 } 2696 copy_extent_buffer(dst, src, |
2697 btrfs_node_key_ptr_offset(0), 2698 btrfs_node_key_ptr_offset(src_nritems - push_items), | 2697 btrfs_node_key_ptr_offset(dst, 0), 2698 btrfs_node_key_ptr_offset(src, src_nritems - push_items), |
2699 push_items * sizeof(struct btrfs_key_ptr)); 2700 2701 btrfs_set_header_nritems(src, src_nritems - push_items); 2702 btrfs_set_header_nritems(dst, dst_nritems + push_items); 2703 2704 btrfs_mark_buffer_dirty(src); 2705 btrfs_mark_buffer_dirty(dst); 2706 --- 86 unchanged lines hidden (view full) --- 2793 BUG_ON(nritems == BTRFS_NODEPTRS_PER_BLOCK(trans->fs_info)); 2794 if (slot != nritems) { 2795 if (level) { 2796 ret = btrfs_tree_mod_log_insert_move(lower, slot + 1, 2797 slot, nritems - slot); 2798 BUG_ON(ret < 0); 2799 } 2800 memmove_extent_buffer(lower, | 2699 push_items * sizeof(struct btrfs_key_ptr)); 2700 2701 btrfs_set_header_nritems(src, src_nritems - push_items); 2702 btrfs_set_header_nritems(dst, dst_nritems + push_items); 2703 2704 btrfs_mark_buffer_dirty(src); 2705 btrfs_mark_buffer_dirty(dst); 2706 --- 86 unchanged lines hidden (view full) --- 2793 BUG_ON(nritems == BTRFS_NODEPTRS_PER_BLOCK(trans->fs_info)); 2794 if (slot != nritems) { 2795 if (level) { 2796 ret = btrfs_tree_mod_log_insert_move(lower, slot + 1, 2797 slot, nritems - slot); 2798 BUG_ON(ret < 0); 2799 } 2800 memmove_extent_buffer(lower, |
2801 btrfs_node_key_ptr_offset(slot + 1), 2802 btrfs_node_key_ptr_offset(slot), | 2801 btrfs_node_key_ptr_offset(lower, slot + 1), 2802 btrfs_node_key_ptr_offset(lower, slot), |
2803 (nritems - slot) * sizeof(struct btrfs_key_ptr)); 2804 } 2805 if (level) { 2806 ret = btrfs_tree_mod_log_insert_key(lower, slot, 2807 BTRFS_MOD_LOG_KEY_ADD); 2808 BUG_ON(ret < 0); 2809 } 2810 btrfs_set_node_key(lower, key, slot); --- 65 unchanged lines hidden (view full) --- 2876 ASSERT(btrfs_header_level(c) == level); 2877 2878 ret = btrfs_tree_mod_log_eb_copy(split, c, 0, mid, c_nritems - mid); 2879 if (ret) { 2880 btrfs_abort_transaction(trans, ret); 2881 return ret; 2882 } 2883 copy_extent_buffer(split, c, | 2803 (nritems - slot) * sizeof(struct btrfs_key_ptr)); 2804 } 2805 if (level) { 2806 ret = btrfs_tree_mod_log_insert_key(lower, slot, 2807 BTRFS_MOD_LOG_KEY_ADD); 2808 BUG_ON(ret < 0); 2809 } 2810 btrfs_set_node_key(lower, key, slot); --- 65 unchanged lines hidden (view full) --- 2876 ASSERT(btrfs_header_level(c) == level); 2877 2878 ret = btrfs_tree_mod_log_eb_copy(split, c, 0, mid, c_nritems - mid); 2879 if (ret) { 2880 btrfs_abort_transaction(trans, ret); 2881 return ret; 2882 } 2883 copy_extent_buffer(split, c, |
2884 btrfs_node_key_ptr_offset(0), 2885 btrfs_node_key_ptr_offset(mid), | 2884 btrfs_node_key_ptr_offset(split, 0), 2885 btrfs_node_key_ptr_offset(c, mid), |
2886 (c_nritems - mid) * sizeof(struct btrfs_key_ptr)); 2887 btrfs_set_header_nritems(split, c_nritems - mid); 2888 btrfs_set_header_nritems(c, mid); 2889 2890 btrfs_mark_buffer_dirty(c); 2891 btrfs_mark_buffer_dirty(split); 2892 2893 insert_ptr(trans, path, &disk_key, split->start, --- 1341 unchanged lines hidden (view full) --- 4235 nritems = btrfs_header_nritems(parent); 4236 if (slot != nritems - 1) { 4237 if (level) { 4238 ret = btrfs_tree_mod_log_insert_move(parent, slot, 4239 slot + 1, nritems - slot - 1); 4240 BUG_ON(ret < 0); 4241 } 4242 memmove_extent_buffer(parent, | 2886 (c_nritems - mid) * sizeof(struct btrfs_key_ptr)); 2887 btrfs_set_header_nritems(split, c_nritems - mid); 2888 btrfs_set_header_nritems(c, mid); 2889 2890 btrfs_mark_buffer_dirty(c); 2891 btrfs_mark_buffer_dirty(split); 2892 2893 insert_ptr(trans, path, &disk_key, split->start, --- 1341 unchanged lines hidden (view full) --- 4235 nritems = btrfs_header_nritems(parent); 4236 if (slot != nritems - 1) { 4237 if (level) { 4238 ret = btrfs_tree_mod_log_insert_move(parent, slot, 4239 slot + 1, nritems - slot - 1); 4240 BUG_ON(ret < 0); 4241 } 4242 memmove_extent_buffer(parent, |
4243 btrfs_node_key_ptr_offset(slot), 4244 btrfs_node_key_ptr_offset(slot + 1), | 4243 btrfs_node_key_ptr_offset(parent, slot), 4244 btrfs_node_key_ptr_offset(parent, slot + 1), |
4245 sizeof(struct btrfs_key_ptr) * 4246 (nritems - slot - 1)); 4247 } else if (level) { 4248 ret = btrfs_tree_mod_log_insert_key(parent, slot, 4249 BTRFS_MOD_LOG_KEY_REMOVE); 4250 BUG_ON(ret < 0); 4251 } 4252 --- 735 unchanged lines hidden --- | 4245 sizeof(struct btrfs_key_ptr) * 4246 (nritems - slot - 1)); 4247 } else if (level) { 4248 ret = btrfs_tree_mod_log_insert_key(parent, slot, 4249 BTRFS_MOD_LOG_KEY_REMOVE); 4250 BUG_ON(ret < 0); 4251 } 4252 --- 735 unchanged lines hidden --- |