diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-12-20 16:57:09 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-12-20 16:57:09 -0500 |
commit | 1ca22254b32657d65315af261ae0e699b8427fb7 (patch) | |
tree | 0cd199bd477b173e3697b17a185c1e93400858d4 | |
parent | a13eea6bd9ee62ceacfc5243d54c84396bc86cb4 (diff) | |
parent | 57ba86c00f9573b63b8c06810d4f6915efed2442 (diff) |
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"
-rw-r--r-- | fs/btrfs/ctree.c | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/fs/btrfs/ctree.c b/fs/btrfs/ctree.c index c7b67cf24bba..eea5da7a2b9a 100644 --- a/fs/btrfs/ctree.c +++ b/fs/btrfs/ctree.c | |||
@@ -1138,13 +1138,13 @@ __tree_mod_log_rewind(struct extent_buffer *eb, u64 time_seq, | |||
1138 | switch (tm->op) { | 1138 | switch (tm->op) { |
1139 | case MOD_LOG_KEY_REMOVE_WHILE_FREEING: | 1139 | case MOD_LOG_KEY_REMOVE_WHILE_FREEING: |
1140 | BUG_ON(tm->slot < n); | 1140 | BUG_ON(tm->slot < n); |
1141 | case MOD_LOG_KEY_REMOVE: | ||
1142 | n++; | ||
1143 | case MOD_LOG_KEY_REMOVE_WHILE_MOVING: | 1141 | case MOD_LOG_KEY_REMOVE_WHILE_MOVING: |
1142 | case MOD_LOG_KEY_REMOVE: | ||
1144 | btrfs_set_node_key(eb, &tm->key, tm->slot); | 1143 | btrfs_set_node_key(eb, &tm->key, tm->slot); |
1145 | btrfs_set_node_blockptr(eb, tm->slot, tm->blockptr); | 1144 | btrfs_set_node_blockptr(eb, tm->slot, tm->blockptr); |
1146 | btrfs_set_node_ptr_generation(eb, tm->slot, | 1145 | btrfs_set_node_ptr_generation(eb, tm->slot, |
1147 | tm->generation); | 1146 | tm->generation); |
1147 | n++; | ||
1148 | break; | 1148 | break; |
1149 | case MOD_LOG_KEY_REPLACE: | 1149 | case MOD_LOG_KEY_REPLACE: |
1150 | BUG_ON(tm->slot >= n); | 1150 | BUG_ON(tm->slot >= n); |
@@ -4611,12 +4611,6 @@ static void del_ptr(struct btrfs_trans_handle *trans, struct btrfs_root *root, | |||
4611 | u32 nritems; | 4611 | u32 nritems; |
4612 | int ret; | 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 | nritems = btrfs_header_nritems(parent); | 4614 | nritems = btrfs_header_nritems(parent); |
4621 | if (slot != nritems - 1) { | 4615 | if (slot != nritems - 1) { |
4622 | if (level) | 4616 | if (level) |
@@ -4627,6 +4621,10 @@ static void del_ptr(struct btrfs_trans_handle *trans, struct btrfs_root *root, | |||
4627 | btrfs_node_key_ptr_offset(slot + 1), | 4621 | btrfs_node_key_ptr_offset(slot + 1), |
4628 | sizeof(struct btrfs_key_ptr) * | 4622 | sizeof(struct btrfs_key_ptr) * |
4629 | (nritems - slot - 1)); | 4623 | (nritems - slot - 1)); |
4624 | } else if (level) { | ||
4625 | ret = tree_mod_log_insert_key(root->fs_info, parent, slot, | ||
4626 | MOD_LOG_KEY_REMOVE); | ||
4627 | BUG_ON(ret < 0); | ||
4630 | } | 4628 | } |
4631 | 4629 | ||
4632 | nritems--; | 4630 | nritems--; |