It doesn't make sense for EXT4_EXTENTS_FL to be set on a fast symlink.
The kernel doesn't set it, and it ignores it if set. Meanwhile, e2fsck
is stricter: it will try to validate the extent tree, which will almost
certainly fail (assuming the symlink is, in fact, a fast symlink).
Make this behavior more explicit by rejecting EXT4_EXTENTS_FL for fast
symlinks, rather than going ahead and trying to validate an extent tree.
Signed-off-by: Eric Biggers <ebiggers@google.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
return 1;
}
- if (ext2fs_is_fast_symlink(inode) &&
- !(inode->i_flags & EXT4_EXTENTS_FL)) {
-
+ if (ext2fs_is_fast_symlink(inode)) {
+ if (inode->i_flags & EXT4_EXTENTS_FL)
+ return 0;
buf = (char *)inode->i_block;
buflen = sizeof(inode->i_block);
} else {