• Jaegeuk Kim's avatar
    f2fs: avoid double lock for cp_rwsem · dd802406
    Jaegeuk Kim authored
    The __f2fs_add_link is covered by cp_rwsem all the time.
    This calls init_inode_metadata, which conducts some acl operations including
    memory allocation with GFP_KERNEL previously.
    But, under memory pressure, f2fs_write_data_page can be called, which also
    grabs cp_rwsem too.
    
    In this case, this incurs a deadlock pointed by Chao.
    Thread #1        Thread #2
     down_read
                     down_write
      down_read
     -> here down_read should wait forever.
    Reviewed-by: default avatarChao Yu <chao2.yu@samsung.com>
    Signed-off-by: default avatarJaegeuk Kim <jaegeuk@kernel.org>
    dd802406
acl.c 8.85 KB