]> git.kernelconcepts.de Git - karo-tx-linux.git/commit
ext4: only use i_size_high for regular files
authorTheodore Ts'o <tytso@mit.edu>
Tue, 17 Feb 2009 15:32:39 +0000 (10:32 -0500)
committerGreg Kroah-Hartman <gregkh@suse.de>
Fri, 20 Feb 2009 22:40:28 +0000 (14:40 -0800)
commit81c76c1e3ab5e0de52694289a30eb963b74202a3
tree085759d5f4b6318fc5113e28d79941c6ab12ff30
parent6a09fd55e8ea8312125ec6f7b86dad9ea44991b7
ext4: only use i_size_high for regular files

(cherry picked from commit 06a279d636734da32bb62dd2f7b0ade666f65d7c)

Directories are not allowed to be bigger than 2GB, so don't use
i_size_high for anything other than regular files.  E2fsck should
complain about these inodes, but the simplest thing to do for the
kernel is to only use i_size_high for regular files.

This prevents an intentially corrupted filesystem from causing the
kernel to burn a huge amount of CPU and issuing error messages such
as:

EXT4-fs warning (device loop0): ext4_block_to_path: block 135090028 > max

Thanks to David Maciejak from Fortinet's FortiGuard Global Security
Research Team for reporting this issue.

http://bugzilla.kernel.org/show_bug.cgi?id=12375

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
fs/ext4/ext4.h
fs/ext4/inode.c