Просмотр исходного кода

Btrfs: allocator tweaks

Signed-off-by: Chris Mason <chris.mason@oracle.com>
Chris Mason 18 лет назад
Родитель
Сommit
28b8bb9e00
2 измененных файлов с 5 добавлено и 5 удалено
  1. 0 3
      fs/btrfs/disk-io.c
  2. 5 2
      fs/btrfs/extent-tree.c

+ 0 - 3
fs/btrfs/disk-io.c

@@ -94,9 +94,6 @@ struct buffer_head *btrfs_find_tree_block(struct btrfs_root *root, u64 blocknr)
 	} while (bh != head);
 out_unlock:
 	unlock_page(page);
-	if (ret) {
-		touch_buffer(ret);
-	}
 	page_cache_release(page);
 	return ret;
 }

+ 5 - 2
fs/btrfs/extent-tree.c

@@ -311,7 +311,10 @@ int btrfs_finish_extent_commit(struct btrfs_trans_handle *trans, struct
 			clear_radix_bit(pinned_radix, gang[i]);
 		}
 	}
-	root->fs_info->block_group_cache = NULL;
+	if (root->fs_info->block_group_cache) {
+		root->fs_info->block_group_cache->last_alloc =
+			root->fs_info->block_group_cache->first_free;
+	}
 	return 0;
 }
 
@@ -578,7 +581,7 @@ check_failed:
 				if (last_block < search_start)
 					last_block = search_start;
 				hole_size = key.objectid - last_block;
-				if (hole_size > num_blocks) {
+				if (hole_size >= num_blocks) {
 					ins->objectid = last_block;
 					ins->offset = hole_size;
 					goto check_pending;