mirror of
https://github.com/kdave/btrfs-progs
synced 2024-12-23 14:45:19 +00:00
btrfs-progs: check: update error bit definitions
Bit shifts should be done on unsigned types as we're approaching 32, also update some missing descriptions. Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
parent
4126a425df
commit
ca785f2dd8
@ -20,33 +20,33 @@
|
||||
#ifndef __BTRFS_CHECK_MODE_LOWMEM_H__
|
||||
#define __BTRFS_CHECK_MODE_LOWMEM_H__
|
||||
|
||||
#define ROOT_DIR_ERROR (1<<1) /* bad ROOT_DIR */
|
||||
#define DIR_ITEM_MISSING (1<<2) /* DIR_ITEM not found */
|
||||
#define DIR_ITEM_MISMATCH (1<<3) /* DIR_ITEM found but not match */
|
||||
#define INODE_REF_MISSING (1<<4) /* INODE_REF/INODE_EXTREF not found */
|
||||
#define INODE_ITEM_MISSING (1<<5) /* INODE_ITEM not found */
|
||||
#define INODE_ITEM_MISMATCH (1<<6) /* INODE_ITEM found but not match */
|
||||
#define FILE_EXTENT_ERROR (1<<7) /* bad FILE_EXTENT */
|
||||
#define ODD_CSUM_ITEM (1<<8) /* CSUM_ITEM error */
|
||||
#define CSUM_ITEM_MISSING (1<<9) /* CSUM_ITEM not found */
|
||||
#define LINK_COUNT_ERROR (1<<10) /* INODE_ITEM nlink count error */
|
||||
#define NBYTES_ERROR (1<<11) /* INODE_ITEM nbytes count error */
|
||||
#define ISIZE_ERROR (1<<12) /* INODE_ITEM size count error */
|
||||
#define ORPHAN_ITEM (1<<13) /* INODE_ITEM no reference */
|
||||
#define NO_INODE_ITEM (1<<14) /* no inode_item */
|
||||
#define LAST_ITEM (1<<15) /* Complete this tree traversal */
|
||||
#define ROOT_REF_MISSING (1<<16) /* ROOT_REF not found */
|
||||
#define ROOT_REF_MISMATCH (1<<17) /* ROOT_REF found but not match */
|
||||
#define DIR_INDEX_MISSING (1<<18) /* INODE_INDEX not found */
|
||||
#define DIR_INDEX_MISMATCH (1<<19) /* INODE_INDEX found but not match */
|
||||
#define DIR_COUNT_AGAIN (1<<20) /* DIR isize should be recalculated */
|
||||
#define BG_ACCOUNTING_ERROR (1<<21) /* Block group accounting error */
|
||||
#define FATAL_ERROR (1<<22) /* Fatal bit for errno */
|
||||
#define INODE_FLAGS_ERROR (1<<23) /* Invalid inode flags */
|
||||
#define DIR_ITEM_HASH_MISMATCH (1<<24) /* Dir item hash mismatch */
|
||||
#define INODE_MODE_ERROR (1<<25) /* Bad inode mode */
|
||||
#define INVALID_GENERATION (1<<26) /* Generation is too new */
|
||||
#define SUPER_BYTES_USED_ERROR (1<<27) /* Super bytes_used is invalid */
|
||||
#define ROOT_DIR_ERROR (1U << 1) /* bad ROOT_DIR */
|
||||
#define DIR_ITEM_MISSING (1U << 2) /* DIR_ITEM not found */
|
||||
#define DIR_ITEM_MISMATCH (1U << 3) /* DIR_ITEM found but not match */
|
||||
#define INODE_REF_MISSING (1U << 4) /* INODE_REF/INODE_EXTREF not found */
|
||||
#define INODE_ITEM_MISSING (1U << 5) /* INODE_ITEM not found */
|
||||
#define INODE_ITEM_MISMATCH (1U << 6) /* INODE_ITEM found but not match */
|
||||
#define FILE_EXTENT_ERROR (1U << 7) /* bad FILE_EXTENT */
|
||||
#define ODD_CSUM_ITEM (1U << 8) /* CSUM_ITEM error */
|
||||
#define CSUM_ITEM_MISSING (1U << 9) /* CSUM_ITEM not found */
|
||||
#define LINK_COUNT_ERROR (1U << 10) /* INODE_ITEM nlink count error */
|
||||
#define NBYTES_ERROR (1U << 11) /* INODE_ITEM nbytes count error */
|
||||
#define ISIZE_ERROR (1U << 12) /* INODE_ITEM size count error */
|
||||
#define ORPHAN_ITEM (1U << 13) /* INODE_ITEM no reference */
|
||||
#define NO_INODE_ITEM (1U << 14) /* no inode_item */
|
||||
#define LAST_ITEM (1U << 15) /* Complete this tree traversal */
|
||||
#define ROOT_REF_MISSING (1U << 16) /* ROOT_REF not found */
|
||||
#define ROOT_REF_MISMATCH (1U << 17) /* ROOT_REF found but not match */
|
||||
#define DIR_INDEX_MISSING (1U << 18) /* INODE_INDEX not found */
|
||||
#define DIR_INDEX_MISMATCH (1U << 19) /* INODE_INDEX found but not match */
|
||||
#define DIR_COUNT_AGAIN (1U << 20) /* DIR isize should be recalculated */
|
||||
#define BG_ACCOUNTING_ERROR (1U << 21) /* Block group accounting error */
|
||||
#define FATAL_ERROR (1U << 22) /* Fatal bit for errno */
|
||||
#define INODE_FLAGS_ERROR (1U << 23) /* Invalid inode flags */
|
||||
#define DIR_ITEM_HASH_MISMATCH (1U << 24) /* Dir item hash mismatch */
|
||||
#define INODE_MODE_ERROR (1U << 25) /* Bad inode mode */
|
||||
#define INVALID_GENERATION (1U << 26) /* Generation is too new */
|
||||
#define SUPER_BYTES_USED_ERROR (1U << 27) /* Super bytes_used is invalid */
|
||||
|
||||
/*
|
||||
* Error bit for low memory mode check.
|
||||
@ -54,17 +54,17 @@
|
||||
* Currently no caller cares about it yet. Just internal use for error
|
||||
* classification.
|
||||
*/
|
||||
#define BACKREF_MISSING (1 << 0) /* Backref missing in extent tree */
|
||||
#define BACKREF_MISMATCH (1 << 1) /* Backref exists but does not match */
|
||||
#define BYTES_UNALIGNED (1 << 2) /* Some bytes are not aligned */
|
||||
#define REFERENCER_MISSING (1 << 3) /* Referencer not found */
|
||||
#define REFERENCER_MISMATCH (1 << 4) /* Referencer found but does not match */
|
||||
#define CROSSING_STRIPE_BOUNDARY (1 << 4) /* For kernel scrub workaround */
|
||||
#define ITEM_SIZE_MISMATCH (1 << 5) /* Bad item size */
|
||||
#define UNKNOWN_TYPE (1 << 6) /* Unknown type */
|
||||
#define ACCOUNTING_MISMATCH (1 << 7) /* Used space accounting error */
|
||||
#define CHUNK_TYPE_MISMATCH (1 << 8)
|
||||
#define BACKREF_OUT_OF_ORDER (1 << 9)
|
||||
#define BACKREF_MISSING (1U << 0) /* Backref missing in extent tree */
|
||||
#define BACKREF_MISMATCH (1U << 1) /* Backref exists but does not match */
|
||||
#define BYTES_UNALIGNED (1U << 2) /* Some bytes are not aligned */
|
||||
#define REFERENCER_MISSING (1U << 3) /* Referencer not found */
|
||||
#define REFERENCER_MISMATCH (1U << 4) /* Referencer found but does not match */
|
||||
#define CROSSING_STRIPE_BOUNDARY (1U << 4) /* For kernel scrub workaround */
|
||||
#define ITEM_SIZE_MISMATCH (1U << 5) /* Bad item size */
|
||||
#define UNKNOWN_TYPE (1U << 6) /* Unknown type */
|
||||
#define ACCOUNTING_MISMATCH (1U << 7) /* Used space accounting error */
|
||||
#define CHUNK_TYPE_MISMATCH (1U << 8) /* Extent type and chunk type don't match */
|
||||
#define BACKREF_OUT_OF_ORDER (1U << 9) /* Inline backrefs out of order */
|
||||
|
||||
int check_fs_roots_lowmem(void);
|
||||
int check_chunks_and_extents_lowmem(void);
|
||||
|
@ -136,19 +136,19 @@ struct root_item_record {
|
||||
struct btrfs_key drop_key;
|
||||
};
|
||||
|
||||
#define REF_ERR_NO_DIR_ITEM (1 << 0)
|
||||
#define REF_ERR_NO_DIR_INDEX (1 << 1)
|
||||
#define REF_ERR_NO_INODE_REF (1 << 2)
|
||||
#define REF_ERR_DUP_DIR_ITEM (1 << 3)
|
||||
#define REF_ERR_DUP_DIR_INDEX (1 << 4)
|
||||
#define REF_ERR_DUP_INODE_REF (1 << 5)
|
||||
#define REF_ERR_INDEX_UNMATCH (1 << 6)
|
||||
#define REF_ERR_FILETYPE_UNMATCH (1 << 7)
|
||||
#define REF_ERR_NAME_TOO_LONG (1 << 8) // 100
|
||||
#define REF_ERR_NO_ROOT_REF (1 << 9)
|
||||
#define REF_ERR_NO_ROOT_BACKREF (1 << 10)
|
||||
#define REF_ERR_DUP_ROOT_REF (1 << 11)
|
||||
#define REF_ERR_DUP_ROOT_BACKREF (1 << 12)
|
||||
#define REF_ERR_NO_DIR_ITEM (1U << 0)
|
||||
#define REF_ERR_NO_DIR_INDEX (1U << 1)
|
||||
#define REF_ERR_NO_INODE_REF (1U << 2)
|
||||
#define REF_ERR_DUP_DIR_ITEM (1U << 3)
|
||||
#define REF_ERR_DUP_DIR_INDEX (1U << 4)
|
||||
#define REF_ERR_DUP_INODE_REF (1U << 5)
|
||||
#define REF_ERR_INDEX_UNMATCH (1U << 6)
|
||||
#define REF_ERR_FILETYPE_UNMATCH (1U << 7)
|
||||
#define REF_ERR_NAME_TOO_LONG (1U << 8) // 100
|
||||
#define REF_ERR_NO_ROOT_REF (1U << 9)
|
||||
#define REF_ERR_NO_ROOT_BACKREF (1U << 10)
|
||||
#define REF_ERR_DUP_ROOT_REF (1U << 11)
|
||||
#define REF_ERR_DUP_ROOT_BACKREF (1U << 12)
|
||||
|
||||
struct file_extent_hole {
|
||||
struct rb_node node;
|
||||
@ -166,29 +166,29 @@ struct unaligned_extent_rec_t {
|
||||
u64 bytenr;
|
||||
};
|
||||
|
||||
#define I_ERR_NO_INODE_ITEM (1 << 0)
|
||||
#define I_ERR_NO_ORPHAN_ITEM (1 << 1)
|
||||
#define I_ERR_DUP_INODE_ITEM (1 << 2)
|
||||
#define I_ERR_DUP_DIR_INDEX (1 << 3)
|
||||
#define I_ERR_ODD_DIR_ITEM (1 << 4)
|
||||
#define I_ERR_ODD_FILE_EXTENT (1 << 5)
|
||||
#define I_ERR_BAD_FILE_EXTENT (1 << 6)
|
||||
#define I_ERR_FILE_EXTENT_OVERLAP (1 << 7)
|
||||
#define I_ERR_FILE_EXTENT_DISCOUNT (1 << 8) // 100
|
||||
#define I_ERR_DIR_ISIZE_WRONG (1 << 9)
|
||||
#define I_ERR_FILE_NBYTES_WRONG (1 << 10) // 400
|
||||
#define I_ERR_ODD_CSUM_ITEM (1 << 11)
|
||||
#define I_ERR_SOME_CSUM_MISSING (1 << 12)
|
||||
#define I_ERR_LINK_COUNT_WRONG (1 << 13)
|
||||
#define I_ERR_UNALIGNED_EXTENT_REC (1 << 14)
|
||||
#define I_ERR_FILE_EXTENT_TOO_LARGE (1 << 15)
|
||||
#define I_ERR_ODD_INODE_FLAGS (1 << 16)
|
||||
#define I_ERR_INLINE_RAM_BYTES_WRONG (1 << 17)
|
||||
#define I_ERR_MISMATCH_DIR_HASH (1 << 18)
|
||||
#define I_ERR_INVALID_IMODE (1 << 19)
|
||||
#define I_ERR_INVALID_GEN (1 << 20)
|
||||
#define I_ERR_INVALID_NLINK (1 << 21)
|
||||
#define I_ERR_INVALID_XATTR (1 << 22)
|
||||
#define I_ERR_NO_INODE_ITEM (1U << 0)
|
||||
#define I_ERR_NO_ORPHAN_ITEM (1U << 1)
|
||||
#define I_ERR_DUP_INODE_ITEM (1U << 2)
|
||||
#define I_ERR_DUP_DIR_INDEX (1U << 3)
|
||||
#define I_ERR_ODD_DIR_ITEM (1U << 4)
|
||||
#define I_ERR_ODD_FILE_EXTENT (1U << 5)
|
||||
#define I_ERR_BAD_FILE_EXTENT (1U << 6)
|
||||
#define I_ERR_FILE_EXTENT_OVERLAP (1U << 7)
|
||||
#define I_ERR_FILE_EXTENT_DISCOUNT (1U << 8) // 100
|
||||
#define I_ERR_DIR_ISIZE_WRONG (1U << 9)
|
||||
#define I_ERR_FILE_NBYTES_WRONG (1U << 10) // 400
|
||||
#define I_ERR_ODD_CSUM_ITEM (1U << 11)
|
||||
#define I_ERR_SOME_CSUM_MISSING (1U << 12)
|
||||
#define I_ERR_LINK_COUNT_WRONG (1U << 13)
|
||||
#define I_ERR_UNALIGNED_EXTENT_REC (1U << 14)
|
||||
#define I_ERR_FILE_EXTENT_TOO_LARGE (1U << 15)
|
||||
#define I_ERR_ODD_INODE_FLAGS (1U << 16)
|
||||
#define I_ERR_INLINE_RAM_BYTES_WRONG (1U << 17)
|
||||
#define I_ERR_MISMATCH_DIR_HASH (1U << 18)
|
||||
#define I_ERR_INVALID_IMODE (1U << 19)
|
||||
#define I_ERR_INVALID_GEN (1U << 20)
|
||||
#define I_ERR_INVALID_NLINK (1U << 21)
|
||||
#define I_ERR_INVALID_XATTR (1U << 22)
|
||||
|
||||
struct inode_record {
|
||||
struct list_head backrefs;
|
||||
|
Loading…
Reference in New Issue
Block a user