Loading fs/btrfs/ctree.c +26 −18 Original line number Diff line number Diff line Loading @@ -130,15 +130,17 @@ static int comp_keys(struct btrfs_disk_key *disk, struct btrfs_key *k2) static int check_node(struct btrfs_root *root, struct btrfs_path *path, int level) { int i; struct btrfs_node *parent = NULL; struct btrfs_node *node = btrfs_buffer_node(path->nodes[level]); int parent_slot; int slot; struct btrfs_key cpukey; u32 nritems = btrfs_header_nritems(&node->header); if (path->nodes[level + 1]) parent = btrfs_buffer_node(path->nodes[level + 1]); parent_slot = path->slots[level + 1]; slot = path->slots[level]; BUG_ON(nritems == 0); if (parent) { struct btrfs_disk_key *parent_key; Loading @@ -149,10 +151,13 @@ static int check_node(struct btrfs_root *root, struct btrfs_path *path, btrfs_header_blocknr(&node->header)); } BUG_ON(nritems > BTRFS_NODEPTRS_PER_BLOCK(root)); for (i = 0; nritems > 1 && i < nritems - 2; i++) { struct btrfs_key cpukey; btrfs_disk_key_to_cpu(&cpukey, &node->ptrs[i + 1].key); BUG_ON(comp_keys(&node->ptrs[i].key, &cpukey) >= 0); if (slot != 0) { btrfs_disk_key_to_cpu(&cpukey, &node->ptrs[slot - 1].key); BUG_ON(comp_keys(&node->ptrs[slot].key, &cpukey) <= 0); } if (slot < nritems - 1) { btrfs_disk_key_to_cpu(&cpukey, &node->ptrs[slot + 1].key); BUG_ON(comp_keys(&node->ptrs[slot].key, &cpukey) >= 0); } return 0; } Loading @@ -160,10 +165,12 @@ static int check_node(struct btrfs_root *root, struct btrfs_path *path, static int check_leaf(struct btrfs_root *root, struct btrfs_path *path, int level) { int i; struct btrfs_leaf *leaf = btrfs_buffer_leaf(path->nodes[level]); struct btrfs_node *parent = NULL; int parent_slot; int slot = path->slots[0]; struct btrfs_key cpukey; u32 nritems = btrfs_header_nritems(&leaf->header); if (path->nodes[level + 1]) Loading @@ -182,19 +189,20 @@ static int check_leaf(struct btrfs_root *root, struct btrfs_path *path, BUG_ON(btrfs_node_blockptr(parent, parent_slot) != btrfs_header_blocknr(&leaf->header)); } for (i = 0; nritems > 1 && i < nritems - 2; i++) { struct btrfs_key cpukey; btrfs_disk_key_to_cpu(&cpukey, &leaf->items[i + 1].key); BUG_ON(comp_keys(&leaf->items[i].key, &cpukey) >= 0); BUG_ON(btrfs_item_offset(leaf->items + i) != btrfs_item_end(leaf->items + i + 1)); if (i == 0) { BUG_ON(btrfs_item_offset(leaf->items + i) + btrfs_item_size(leaf->items + i) != BTRFS_LEAF_DATA_SIZE(root)); if (slot != 0) { btrfs_disk_key_to_cpu(&cpukey, &leaf->items[slot - 1].key); BUG_ON(comp_keys(&leaf->items[slot].key, &cpukey) <= 0); BUG_ON(btrfs_item_offset(leaf->items + slot - 1) != btrfs_item_end(leaf->items + slot)); } if (slot < nritems - 1) { btrfs_disk_key_to_cpu(&cpukey, &leaf->items[slot + 1].key); BUG_ON(comp_keys(&leaf->items[slot].key, &cpukey) >= 0); BUG_ON(btrfs_item_offset(leaf->items + slot) != btrfs_item_end(leaf->items + slot + 1)); } BUG_ON(btrfs_item_offset(leaf->items) + btrfs_item_size(leaf->items) != BTRFS_LEAF_DATA_SIZE(root)); return 0; } Loading fs/btrfs/extent-tree.c +3 −3 Original line number Diff line number Diff line Loading @@ -235,7 +235,7 @@ struct btrfs_block_group_cache *btrfs_find_block_group(struct btrfs_root *root, hint->key.offset - 1, BTRFS_BLOCK_GROUP_AVAIL); } last = hint->key.offset * 2; last = hint->key.offset * 3; if (hint->key.objectid >= last) last = max(search_start + hint->key.offset - 1, hint->key.objectid - last); Loading Loading @@ -554,8 +554,8 @@ static int update_block_group(struct btrfs_trans_handle *trans, blocknr + i); } } if (old_val < (cache->key.offset * 8) / 10 && old_val + num >= (cache->key.offset * 8) / 10) { if (old_val < (cache->key.offset * 6) / 10 && old_val + num >= (cache->key.offset * 6) / 10) { printk("group %Lu now available\n", cache->key.objectid); radix_tree_tag_set(cache->radix, cache->key.objectid + Loading Loading
fs/btrfs/ctree.c +26 −18 Original line number Diff line number Diff line Loading @@ -130,15 +130,17 @@ static int comp_keys(struct btrfs_disk_key *disk, struct btrfs_key *k2) static int check_node(struct btrfs_root *root, struct btrfs_path *path, int level) { int i; struct btrfs_node *parent = NULL; struct btrfs_node *node = btrfs_buffer_node(path->nodes[level]); int parent_slot; int slot; struct btrfs_key cpukey; u32 nritems = btrfs_header_nritems(&node->header); if (path->nodes[level + 1]) parent = btrfs_buffer_node(path->nodes[level + 1]); parent_slot = path->slots[level + 1]; slot = path->slots[level]; BUG_ON(nritems == 0); if (parent) { struct btrfs_disk_key *parent_key; Loading @@ -149,10 +151,13 @@ static int check_node(struct btrfs_root *root, struct btrfs_path *path, btrfs_header_blocknr(&node->header)); } BUG_ON(nritems > BTRFS_NODEPTRS_PER_BLOCK(root)); for (i = 0; nritems > 1 && i < nritems - 2; i++) { struct btrfs_key cpukey; btrfs_disk_key_to_cpu(&cpukey, &node->ptrs[i + 1].key); BUG_ON(comp_keys(&node->ptrs[i].key, &cpukey) >= 0); if (slot != 0) { btrfs_disk_key_to_cpu(&cpukey, &node->ptrs[slot - 1].key); BUG_ON(comp_keys(&node->ptrs[slot].key, &cpukey) <= 0); } if (slot < nritems - 1) { btrfs_disk_key_to_cpu(&cpukey, &node->ptrs[slot + 1].key); BUG_ON(comp_keys(&node->ptrs[slot].key, &cpukey) >= 0); } return 0; } Loading @@ -160,10 +165,12 @@ static int check_node(struct btrfs_root *root, struct btrfs_path *path, static int check_leaf(struct btrfs_root *root, struct btrfs_path *path, int level) { int i; struct btrfs_leaf *leaf = btrfs_buffer_leaf(path->nodes[level]); struct btrfs_node *parent = NULL; int parent_slot; int slot = path->slots[0]; struct btrfs_key cpukey; u32 nritems = btrfs_header_nritems(&leaf->header); if (path->nodes[level + 1]) Loading @@ -182,19 +189,20 @@ static int check_leaf(struct btrfs_root *root, struct btrfs_path *path, BUG_ON(btrfs_node_blockptr(parent, parent_slot) != btrfs_header_blocknr(&leaf->header)); } for (i = 0; nritems > 1 && i < nritems - 2; i++) { struct btrfs_key cpukey; btrfs_disk_key_to_cpu(&cpukey, &leaf->items[i + 1].key); BUG_ON(comp_keys(&leaf->items[i].key, &cpukey) >= 0); BUG_ON(btrfs_item_offset(leaf->items + i) != btrfs_item_end(leaf->items + i + 1)); if (i == 0) { BUG_ON(btrfs_item_offset(leaf->items + i) + btrfs_item_size(leaf->items + i) != BTRFS_LEAF_DATA_SIZE(root)); if (slot != 0) { btrfs_disk_key_to_cpu(&cpukey, &leaf->items[slot - 1].key); BUG_ON(comp_keys(&leaf->items[slot].key, &cpukey) <= 0); BUG_ON(btrfs_item_offset(leaf->items + slot - 1) != btrfs_item_end(leaf->items + slot)); } if (slot < nritems - 1) { btrfs_disk_key_to_cpu(&cpukey, &leaf->items[slot + 1].key); BUG_ON(comp_keys(&leaf->items[slot].key, &cpukey) >= 0); BUG_ON(btrfs_item_offset(leaf->items + slot) != btrfs_item_end(leaf->items + slot + 1)); } BUG_ON(btrfs_item_offset(leaf->items) + btrfs_item_size(leaf->items) != BTRFS_LEAF_DATA_SIZE(root)); return 0; } Loading
fs/btrfs/extent-tree.c +3 −3 Original line number Diff line number Diff line Loading @@ -235,7 +235,7 @@ struct btrfs_block_group_cache *btrfs_find_block_group(struct btrfs_root *root, hint->key.offset - 1, BTRFS_BLOCK_GROUP_AVAIL); } last = hint->key.offset * 2; last = hint->key.offset * 3; if (hint->key.objectid >= last) last = max(search_start + hint->key.offset - 1, hint->key.objectid - last); Loading Loading @@ -554,8 +554,8 @@ static int update_block_group(struct btrfs_trans_handle *trans, blocknr + i); } } if (old_val < (cache->key.offset * 8) / 10 && old_val + num >= (cache->key.offset * 8) / 10) { if (old_val < (cache->key.offset * 6) / 10 && old_val + num >= (cache->key.offset * 6) / 10) { printk("group %Lu now available\n", cache->key.objectid); radix_tree_tag_set(cache->radix, cache->key.objectid + Loading