path: root/ctree.h
diff options
authorQu Wenruo <>2016-02-22 14:59:54 +0800
committerDavid Sterba <>2016-02-26 17:27:58 +0100
commit43318324d20cccccfacf2e82ac10e27eefb6cc95 (patch)
treea15dbe5de507252b055409ed00d23334c3f181f1 /ctree.h
parente2e0dae926b2174c368ee6dbed610d9f98c193a5 (diff)
btrfs-progs: Allow open_ctree to return fs_info even chunk tree is corrupted
Current open_ctree_fs_info() won't return anything if chunk tree root is corrupted. This makes some function, like btrfs-find-root, unable to find any older chunk tree root, even it is possible to use system_chunk_array in super block. And at least two users in mail list has reported such heavily chunk corruption. Although we have 'btrfs rescue chunk-recovery' but it's too time consuming and sometimes not able to cope with a specific filesystem corruption. This patch adds a new open ctree flag, OPEN_CTREE_IGNORE_CHUNK_TREE_ERROR, allowing fs_info to be returned from open_ctree_fs_info() even there is no valid tree root in it. Also adds a new close_ctree() variant, close_ctree_fs_info() to handle possible fs_info without any root. Signed-off-by: Qu Wenruo <> [ adjusted error messages ] Signed-off-by: David Sterba <>
Diffstat (limited to 'ctree.h')
1 files changed, 1 insertions, 0 deletions
diff --git a/ctree.h b/ctree.h
index 21b04458..5ab0f4a4 100644
--- a/ctree.h
+++ b/ctree.h
@@ -1029,6 +1029,7 @@ struct btrfs_fs_info {
unsigned int quota_enabled:1;
unsigned int suppress_check_block_errors:1;
unsigned int ignore_fsid_mismatch:1;
+ unsigned int ignore_chunk_tree_error:1;
int (*free_extent_hook)(struct btrfs_trans_handle *trans,
struct btrfs_root *root,