+enum btrfs_open_ctree_flags {
+ OPEN_CTREE_WRITES = (1 << 0),
+ OPEN_CTREE_PARTIAL = (1 << 1),
+ OPEN_CTREE_BACKUP_ROOT = (1 << 2),
+ OPEN_CTREE_RECOVER_SUPER = (1 << 3),
+ OPEN_CTREE_RESTORE = (1 << 4),
+ OPEN_CTREE_NO_BLOCK_GROUPS = (1 << 5),
+ OPEN_CTREE_EXCLUSIVE = (1 << 6),
+ OPEN_CTREE_NO_DEVICES = (1 << 7),
+ /*
+ * Don't print error messages if bytenr or checksums do not match in
+ * tree block headers. Turn on by OPEN_CTREE_SUPPRESS_ERROR
+ */
+ OPEN_CTREE_SUPPRESS_CHECK_BLOCK_ERRORS = (1 << 8),
+ /* Return chunk root */
+ __OPEN_CTREE_RETURN_CHUNK_ROOT = (1 << 9),
+ OPEN_CTREE_CHUNK_ROOT_ONLY = OPEN_CTREE_PARTIAL +
+ OPEN_CTREE_SUPPRESS_CHECK_BLOCK_ERRORS +
+ __OPEN_CTREE_RETURN_CHUNK_ROOT,
+ /*
+ * TODO: cleanup: Split the open_ctree_flags into more independent
+ * Tree bits.
+ * Like split PARTIAL into SKIP_CSUM/SKIP_EXTENT
+ */
+
+ OPEN_CTREE_IGNORE_FSID_MISMATCH = (1 << 10),
+
+ /*
+ * Allow open_ctree_fs_info() to return a incomplete fs_info with
+ * system chunks from super block only.
+ * It's useful for chunk corruption case.
+ * Makes no sense for open_ctree variants returning btrfs_root.
+ */
+ OPEN_CTREE_IGNORE_CHUNK_TREE_ERROR = (1 << 11)
+};
+