diff options
author | Josef Bacik <josef@redhat.com> | 2011-03-16 18:42:43 +0100 |
---|---|---|
committer | Josef Bacik <josef@redhat.com> | 2011-03-17 19:21:37 +0100 |
commit | a826d6dcb32d811b4c81df57a5ef1367516586b0 (patch) | |
tree | 4853d5acf6cde4dfb0eeb19f5c74dc3d7934359b /fs/btrfs/extent_io.h | |
parent | Btrfs: return error if the range we want to map is bogus (diff) | |
download | linux-a826d6dcb32d811b4c81df57a5ef1367516586b0.tar.xz linux-a826d6dcb32d811b4c81df57a5ef1367516586b0.zip |
Btrfs: check items for correctness as we search
Currently if we have corrupted items things will blow up in spectacular ways.
So as we read in blocks and they are leaves, check the entire leaf to make sure
all of the items are correct and point to valid parts in the leaf for the item
data the are responsible for. If the item is corrupt we will kick back EIO and
not read any of the copies since they are likely to not be correct either. This
will catch generic corruptions, it will be up to the individual callers of
btrfs_search_slot to make sure their items are right. Thanks,
Signed-off-by: Josef Bacik <josef@redhat.com>
Diffstat (limited to 'fs/btrfs/extent_io.h')
-rw-r--r-- | fs/btrfs/extent_io.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/fs/btrfs/extent_io.h b/fs/btrfs/extent_io.h index 9318dfefd59c..f62c5442835d 100644 --- a/fs/btrfs/extent_io.h +++ b/fs/btrfs/extent_io.h @@ -31,6 +31,7 @@ #define EXTENT_BUFFER_UPTODATE 0 #define EXTENT_BUFFER_BLOCKING 1 #define EXTENT_BUFFER_DIRTY 2 +#define EXTENT_BUFFER_CORRUPT 3 /* these are flags for extent_clear_unlock_delalloc */ #define EXTENT_CLEAR_UNLOCK_PAGE 0x1 |