Whamcloud - gitweb
e2fsck: fix conflicting extents|inlinedata inode flags
authorDarrick J. Wong <darrick.wong@oracle.com>
Sun, 10 Aug 2014 22:42:59 +0000 (18:42 -0400)
committerTheodore Ts'o <tytso@mit.edu>
Sun, 10 Aug 2014 22:43:24 +0000 (18:43 -0400)
commitfa441f91f1dc02f7c72694b5d4f65374b5a18f44
tree94f016ce33e1a0102caf6c13c96acb3395e4cf03
parent8dae07fb5550dfc3022c7eed4ea797a42b595e6e
e2fsck: fix conflicting extents|inlinedata inode flags

If we come across an inode with the inline data and extents inode flag
set, try to figure out the correct flag settings from the contents of
i_block and i_size.  If i_blocks looks like an extent tree head, we'll
make it an extent inode; if it's small enough for inline data, set it
to that.  This leaves the weird gray area where there's no extent
tree but it's too big for the inode -- if /could/ be a block map,
change it to that; otherwise, just clear the inode.

Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
e2fsck/pass1.c
e2fsck/problem.c
e2fsck/problem.h
tests/f_idata_and_extents/expect.1 [new file with mode: 0644]
tests/f_idata_and_extents/expect.2 [new file with mode: 0644]
tests/f_idata_and_extents/image.gz [new file with mode: 0644]
tests/f_idata_and_extents/name [new file with mode: 0644]