• J
    ext2: Fix underflow in ext2_max_size() · 81f1ca8c
    Jan Kara 提交于
    commit 1c2d14212b15a60300a2d4f6364753e87394c521 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: Nyangerkun <yangerkun@huawei.com>
    Signed-off-by: NJan Kara <jack@suse.cz>
    Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: NYang Yingliang <yangyingliang@huawei.com>
    81f1ca8c
super.c 44.9 KB