Skip to content
  • Theodore Ts'o's avatar
    ext4: fix a potential fiemap/page fault deadlock w/ inline_data · b4727299
    Theodore Ts'o authored
    commit 2b08b1f1
    
     upstream.
    
    The ext4_inline_data_fiemap() function calls fiemap_fill_next_extent()
    while still holding the xattr semaphore.  This is not necessary and it
    triggers a circular lockdep warning.  This is because
    fiemap_fill_next_extent() could trigger a page fault when it writes
    into page which triggers a page fault.  If that page is mmaped from
    the inline file in question, this could very well result in a
    deadlock.
    
    This problem can be reproduced using generic/519 with a file system
    configuration which has the inline_data feature enabled.
    
    Signed-off-by: default avatarTheodore Ts'o <tytso@mit.edu>
    Cc: stable@kernel.org
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    b4727299