Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs

Pull two btrfs reverts from Chris Mason:
"I had missed that for two of the patches in my last pull, we had
included different fixes during 3.7."

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs:
Revert "Btrfs: reorder tree mod log operations in deleting a pointer"
Revert "Btrfs: MOD_LOG_KEY_REMOVE_WHILE_MOVING never change node's nritems"

+6 -8
+6 -8
fs/btrfs/ctree.c
··· 1138 1138 switch (tm->op) { 1139 1139 case MOD_LOG_KEY_REMOVE_WHILE_FREEING: 1140 1140 BUG_ON(tm->slot < n); 1141 - case MOD_LOG_KEY_REMOVE: 1142 - n++; 1143 1141 case MOD_LOG_KEY_REMOVE_WHILE_MOVING: 1142 + case MOD_LOG_KEY_REMOVE: 1144 1143 btrfs_set_node_key(eb, &tm->key, tm->slot); 1145 1144 btrfs_set_node_blockptr(eb, tm->slot, tm->blockptr); 1146 1145 btrfs_set_node_ptr_generation(eb, tm->slot, 1147 1146 tm->generation); 1147 + n++; 1148 1148 break; 1149 1149 case MOD_LOG_KEY_REPLACE: 1150 1150 BUG_ON(tm->slot >= n); ··· 4611 4611 u32 nritems; 4612 4612 int ret; 4613 4613 4614 - if (level) { 4615 - ret = tree_mod_log_insert_key(root->fs_info, parent, slot, 4616 - MOD_LOG_KEY_REMOVE); 4617 - BUG_ON(ret < 0); 4618 - } 4619 - 4620 4614 nritems = btrfs_header_nritems(parent); 4621 4615 if (slot != nritems - 1) { 4622 4616 if (level) ··· 4621 4627 btrfs_node_key_ptr_offset(slot + 1), 4622 4628 sizeof(struct btrfs_key_ptr) * 4623 4629 (nritems - slot - 1)); 4630 + } else if (level) { 4631 + ret = tree_mod_log_insert_key(root->fs_info, parent, slot, 4632 + MOD_LOG_KEY_REMOVE); 4633 + BUG_ON(ret < 0); 4624 4634 } 4625 4635 4626 4636 nritems--;