diff options
author | Darrick J. Wong <darrick.wong@oracle.com> | 2015-11-30 15:22:07 -0500 |
---|---|---|
committer | Theodore Ts'o <tytso@mit.edu> | 2015-11-30 15:22:07 -0500 |
commit | f680db654b2f095712f2528dc178eea5cfd6401f (patch) | |
tree | a8c6f2281b25843ba6d4b108364ea71880210b9c /e2fsck/problem.h | |
parent | c5b3ae7fb5d58dd12a1e02c2443bad32c8a76150 (diff) | |
download | e2fsprogs-f680db654b2f095712f2528dc178eea5cfd6401f.tar.gz |
e2fsck: zap extent-format inode with no extent header
The kernel requires all inodes with the extent flag set to have a
valid extent tree header in i_block. The ext2fs_extent_open2 prefers
to initialize the header if i_block is zeroed, but e2fsck never writes
the new header to disk. Since the kernel won't create inodes with the
flag and no header anyway, zap such files.
Reported-by: Bo Branten <bosse@acc.umu.se>
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Diffstat (limited to 'e2fsck/problem.h')
-rw-r--r-- | e2fsck/problem.h | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/e2fsck/problem.h b/e2fsck/problem.h index 212ed350..85014f9c 100644 --- a/e2fsck/problem.h +++ b/e2fsck/problem.h @@ -587,6 +587,45 @@ struct problem_context { /* Inode logical block is misaligned */ #define PR_1_MISALIGNED_CLUSTER 0x010074 +/* Inode has INLINE_DATA_FL flag but extended attribute not found */ +#define PR_1_INLINE_DATA_NO_ATTR 0x010075 + +/* extents/inlinedata set on fifo/socket/device */ +#define PR_1_SPECIAL_EXTENTS_IDATA 0x010076 + +/* idata/extent flag set and extent header found, clear idata flag */ +#define PR_1_CLEAR_INLINE_DATA_FOR_EXTENT 0x010077 + +/* inlinedata/extent set and no extent header found, clear extent flag */ +#define PR_1_CLEAR_EXTENT_FOR_INLINE_DATA 0x010078 + +/* inlinedata/extent set, clear both flags */ +#define PR_1_CLEAR_EXTENT_INLINE_DATA_FLAGS 0x010079 + +/* inlinedata/extent set, clear inode */ +#define PR_1_CLEAR_EXTENT_INLINE_DATA_INODE 0x01007A + +/* badblocks is in badblocks */ +#define PR_1_BADBLOCKS_IN_BADBLOCKS 0x01007B + +/* can't allocate extent region */ +#define PR_1_EXTENT_ALLOC_REGION_ABORT 0x01007C + +/* leaf extent collision */ +#define PR_1_EXTENT_COLLISION 0x01007D + +/* Error allocating memory for encrypted directory list */ +#define PR_1_ALLOCATE_ENCRYPTED_DIRLIST 0x01007E + +/* extent tree max depth too big */ +#define PR_1_EXTENT_BAD_MAX_DEPTH 0x01007F + +/* bigalloc fs cannot have blockmap files */ +#define PR_1_NO_BIGALLOC_BLOCKMAP_FILES 0x010080 + +/* Missing extent header */ +#define PR_1_MISSING_EXTENT_HEADER 0x010081 + /* * Pass 1b errors */ |