• Jan Kara's avatar
    ext4: fix hole length detection in ext4_ind_map_blocks() · 2ee3ee06
    Jan Kara authored
    When ext4_ind_map_blocks() computes a length of a hole, it doesn't count
    with the fact that mapped offset may be somewhere in the middle of the
    completely empty subtree. In such case it will return too large length
    of the hole which then results in lseek(SEEK_DATA) to end up returning
    an incorrect offset beyond the end of the hole.
    
    Fix the problem by correctly taking offset within a subtree into account
    when computing a length of a hole.
    
    Fixes: facab4d9
    CC: stable@vger.kernel.org
    Reported-by: default avatarJeff Mahoney <jeffm@suse.com>
    Signed-off-by: default avatarJan Kara <jack@suse.cz>
    Signed-off-by: default avatarTheodore Ts'o <tytso@mit.edu>
    2ee3ee06
indirect.c 43 KB