• Jaegeuk Kim's avatar
    f2fs: fix a deadlock during init_acl procedure · 2ed2d5b3
    Jaegeuk Kim authored
    The deadlock is found through the following scenario.
    
    sys_mkdir()
     -> f2fs_add_link()
      -> __f2fs_add_link()
       -> init_inode_metadata()
         : lock_page(inode);
        -> f2fs_init_acl()
         -> f2fs_set_acl()
          -> f2fs_setxattr(..., NULL)
           : This NULL page incurs a deadlock at update_inode_page().
    
    So, likewise f2fs_init_security(), this patch adds a parameter to transfer the
    locked inode page to f2fs_setxattr().
    
    Found by Linux File System Verification project (linuxtesting.org).
    Reported-by: default avatarAlexey Khoroshilov <khoroshilov@ispras.ru>
    Signed-off-by: default avatarJaegeuk Kim <jaegeuk.kim@samsung.com>
    2ed2d5b3
dir.c 16.6 KB