linux/fs/f2fs
Jaegeuk Kim 764d2c8040 f2fs: fix deadlock to grab 0'th data page
The scenario is like this.

One trhead triggers:
  f2fs_write_data_pages
    lock_page
    f2fs_write_data_page
      f2fs_lock_op  <- wait

The other thread triggers:
  f2fs_truncate
    truncate_blocks
      f2fs_lock_op
        truncate_partial_data_page
          lock_page  <- wait for locking the page

This patch resolves this bug by relocating truncate_partial_data_page.
This function is just to truncate user data page and not related to FS
consistency as well.
And, we don't need to call truncate_inline_data. Rather than that,
f2fs_write_data_page will finally update inline_data later.

Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2014-11-11 14:15:48 -08:00
..
acl.c f2fs: remove the redundant function cond_clear_inode_flag 2014-11-03 16:07:36 -08:00
acl.h f2fs: avoid deadlock on init_inode_metadata 2014-11-03 16:07:33 -08:00
checkpoint.c f2fs: introduce the number of inode entries 2014-11-06 15:17:43 -08:00
data.c f2fs: avoid race condition in handling wait_io 2014-11-04 17:34:14 -08:00
debug.c f2fs: introduce the number of inode entries 2014-11-06 15:17:43 -08:00
dir.c f2fs: remove pointless bit testing in f2fs_delete_entry() 2014-11-03 16:07:38 -08:00
f2fs.h f2fs: introduce the number of inode entries 2014-11-06 15:17:43 -08:00
file.c f2fs: fix deadlock to grab 0'th data page 2014-11-11 14:15:48 -08:00
gc.c f2fs: introduce -o fastboot for reducing booting time only 2014-11-04 17:34:15 -08:00
gc.h f2fs: fix typo 2014-08-19 10:01:33 -07:00
hash.c f2fs: fix wrong casting for dentry name 2014-08-29 00:26:50 -07:00
inline.c f2fs: reduce the number of inline_data inode before clearing it 2014-11-10 16:29:14 -08:00
inode.c f2fs: revisit inline_data to avoid data races and potential bugs 2014-11-04 17:34:11 -08:00
Kconfig f2fs: fix typo 2014-08-19 10:01:33 -07:00
Makefile f2fs: key functions to handle inline data 2013-12-26 20:40:09 +09:00
namei.c f2fs: implement -o dirsync 2014-11-10 06:51:39 -08:00
node.c f2fs: write node pages if checkpoint is not doing 2014-11-10 06:51:28 -08:00
node.h f2fs: control the memory footprint used by ino entries 2014-11-06 15:24:46 -08:00
recovery.c f2fs: enable inline dir handling 2014-11-03 16:07:32 -08:00
segment.c f2fs: control the memory footprint used by ino entries 2014-11-06 15:24:46 -08:00
segment.h f2fs: do not skip any writes under memory pressure 2014-11-10 06:51:38 -08:00
super.c f2fs: introduce -o fastboot for reducing booting time only 2014-11-04 17:34:15 -08:00
xattr.c f2fs: avoid deadlock on init_inode_metadata 2014-11-03 16:07:33 -08:00
xattr.h f2fs: avoid deadlock on init_inode_metadata 2014-11-03 16:07:33 -08:00