• Jan Kara's avatar
    ext2: Fix underflow in ext2_max_size() · 62600af3
    Jan Kara authored
    commit 1c2d1421 upstream.
    
    When ext2 filesystem is created with 64k block size, ext2_max_size()
    will return value less than 0. Also, we cannot write any file in this fs
    since the sb->maxbytes is less than 0. The core of the problem is that
    the size of block index tree for such large block size is more than
    i_blocks can carry. So fix the computation to count with this
    possibility.
    
    File size limits computed with the new function for the full range of
    possible block sizes look like:
    
    bits file_size
    10     17247252480
    11    275415851008
    12   2196873666560
    13   2197948973056
    14   2198486220800
    15   2198754754560
    16   2198888906752
    
    CC: stable@vger.kernel.org
    Reported-by: default avataryangerkun <yangerkun@huawei.com>
    Signed-off-by: default avatarJan Kara <jack@suse.cz>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    62600af3
super.c 44.9 KB