linux/fs/f2fs
Jaegeuk Kim 2ed2d5b33c f2fs: fix a deadlock during init_acl procedure
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: Alexey Khoroshilov <khoroshilov@ispras.ru>
Signed-off-by: Jaegeuk Kim <jaegeuk.kim@samsung.com>
2013-10-28 13:39:09 +09:00
..
acl.c f2fs: fix a deadlock during init_acl procedure 2013-10-28 13:39:09 +09:00
acl.h f2fs: fix a deadlock during init_acl procedure 2013-10-28 13:39:09 +09:00
checkpoint.c f2fs: add tracepoint for set_page_dirty 2013-10-25 16:54:40 +09:00
data.c f2fs: add tracepoint for set_page_dirty 2013-10-25 16:54:40 +09:00
debug.c f2fs: use seq_puts()/seq_putc() rather than seq_printf() where possible 2013-07-30 15:17:03 +09:00
dir.c f2fs: fix a deadlock during init_acl procedure 2013-10-28 13:39:09 +09:00
f2fs.h f2fs: introduce f2fs_balance_fs_bg for some background jobs 2013-10-25 16:54:38 +09:00
file.c f2fs: add tracepoint for vm_page_mkwrite 2013-10-25 16:54:40 +09:00
gc.c f2fs: introduce f2fs_balance_fs_bg for some background jobs 2013-10-25 16:54:38 +09:00
gc.h f2fs: optimize gc for better performance 2013-09-05 13:50:32 +09:00
hash.c f2fs: unify string length declarations and usage 2012-12-28 11:27:53 +09:00
inode.c f2fs: fix to store and retrieve i_rdev correctly 2013-10-18 09:43:38 +09:00
Kconfig f2fs: support xattr security labels 2013-06-11 16:01:03 +09:00
Makefile f2fs: update Kconfig and Makefile 2012-12-11 13:43:42 +09:00
namei.c f2fs: fix writing incorrect orphan blocks 2013-10-08 10:19:28 +09:00
node.c f2fs: add tracepoint for set_page_dirty 2013-10-25 16:54:40 +09:00
node.h f2fs: fix the use of XATTR_NODE_OFFSET 2013-08-09 14:57:56 +09:00
recovery.c f2fs: use bool for booleans 2013-10-25 16:54:37 +09:00
segment.c f2fs: remove unnecessary segment bitmap updates 2013-10-28 13:38:16 +09:00
segment.h f2fs: reclaim prefree segments periodically 2013-10-25 16:54:37 +09:00
super.c f2fs: add reclaiming control by sysfs 2013-10-25 16:54:39 +09:00
xattr.c f2fs: use rw_sem instead of fs_lock(locks mutex) 2013-10-07 11:33:05 +09:00
xattr.h f2fs: support the inline xattrs 2013-08-26 20:15:23 +09:00