• Aneesh Kumar K.V's avatar
    ext4: Use the ext4_ext_actual_len() helper function · b939e376
    Aneesh Kumar K.V authored
    ext4 uses the high bit of the extent length to encode whether the extent
    is intialized or not. The helper function ext4_ext_get_actual_len should
    be used to get the actual length of the extent.
    
    This addresses the kernel bug documented here: 
         http://bugzilla.kernel.org/show_bug.cgi?id=9732
    
    kernel BUG at fs/ext4/extents.c:1056!
    ....
    Call Trace:
    [<ffffffff88366073>] :ext4dev:ext4_ext_get_blocks+0x5ba/0x8c1
    [<ffffffff81053c91>] lock_release_holdtime+0x27/0x49
    [<ffffffff812748f6>] _spin_unlock+0x17/0x20
    [<ffffffff883400a6>] :jbd2:start_this_handle+0x4e0/0x4fe
    [<ffffffff88366564>] :ext4dev:ext4_fallocate+0x175/0x39a
    [<ffffffff81053c91>] lock_release_holdtime+0x27/0x49
    [<ffffffff81056480>] __lock_acquire+0x4e7/0xc4d
    [<ffffffff81053c91>] lock_release_holdtime+0x27/0x49
    [<ffffffff810a8de7>] sys_fallocate+0xe4/0x10d
    [<ffffffff8100c043>] tracesys+0xd5/0xda
    Signed-off-by: default avatarAneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
    Signed-off-by: default avatar"Theodore Ts'o" <tytso@mit.edu>
    b939e376
extents.c 69 KB