diff options
author | Josef Bacik <jbacik@fusionio.com> | 2013-10-01 09:00:19 -0400 |
---|---|---|
committer | Chris Mason <chris.mason@fusionio.com> | 2013-10-16 08:23:12 -0400 |
commit | c64485544baa9ffc5fbedd5661a05bdee1b37598 (patch) | |
tree | 4461ef770a41b3056a0f0763d308d4f6a53e07b6 /extent_io.h | |
parent | 2454473dd1647e83d6eba9852eeb08d331e9ea9a (diff) | |
download | btrfs-progs-c64485544baa9ffc5fbedd5661a05bdee1b37598.tar.gz |
Btrfs-progs: keep track of transid failures and fix them if possible
A user was reporting an issue with bad transid errors on his blocks. The thing
is that btrfs-progs will ignore transid failures for things like restore and
fsck so we can do a best effort to fix a users file system. So fsck can put
together a coherent view of the file system with stale blocks. So if everything
else is ok in the mind of fsck then we can recow these blocks to fix the
generation and the user can get their file system back. Thanks,
Signed-off-by: Josef Bacik <jbacik@fusionio.com>
Signed-off-by: David Sterba <dsterba@suse.cz>
Signed-off-by: Chris Mason <chris.mason@fusionio.com>
Diffstat (limited to 'extent_io.h')
-rw-r--r-- | extent_io.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/extent_io.h b/extent_io.h index ad283cd..68fb9ce 100644 --- a/extent_io.h +++ b/extent_io.h @@ -39,6 +39,7 @@ #define EXTENT_DEFRAG_DONE (1 << 7) #define EXTENT_BUFFER_FILLED (1 << 8) #define EXTENT_CSUM (1 << 9) +#define EXTENT_BAD_TRANSID (1 << 10) #define EXTENT_IOBITS (EXTENT_LOCKED | EXTENT_WRITEBACK) #define BLOCK_GROUP_DATA EXTENT_WRITEBACK @@ -72,6 +73,7 @@ struct extent_buffer { u32 len; struct extent_io_tree *tree; struct list_head lru; + struct list_head recow; int refs; int flags; int fd; |