linux-imx/fs/f2fs
Jaegeuk Kim ff08fb9958 f2fs: wait on atomic writes to count F2FS_CP_WB_DATA
commit 31867b23d7 upstream.

Otherwise, we can get wrong counts incurring checkpoint hang.

IO_W (CP:  -24, Data:   24, Flush: (   0    0    1), Discard: (   0    0))

Thread A                        Thread B
- f2fs_write_data_pages
 -  __write_data_page
  - f2fs_submit_page_write
   - inc_page_count(F2FS_WB_DATA)
     type is F2FS_WB_DATA due to file is non-atomic one
- f2fs_ioc_start_atomic_write
 - set_inode_flag(FI_ATOMIC_FILE)
                                - f2fs_write_end_io
                                 - dec_page_count(F2FS_WB_CP_DATA)
                                   type is F2FS_WB_DATA due to file becomes
                                   atomic one

Cc: <stable@vger.kernel.org>
Reviewed-by: Chao Yu <yuchao0@huawei.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-03-19 13:11:55 +01:00
..
acl.c f2fs: fix wrong return value of f2fs_acl_create 2019-02-12 20:02:11 +01:00
acl.h f2fs: add SPDX license identifiers 2018-09-12 13:07:10 -07:00
checkpoint.c f2fs: fix to reorder set_page_dirty and wait_on_page_writeback 2019-02-12 20:02:19 +01:00
data.c f2fs: fix race between write_checkpoint and write_begin 2019-02-12 20:02:11 +01:00
debug.c f2fs: account read IOs and use IO counts for is_idle 2018-10-22 17:54:46 -07:00
dir.c Merge branch 'xarray' of git://git.infradead.org/users/willy/linux-dax 2018-10-28 11:35:40 -07:00
extent_cache.c f2fs: use rb_*_cached friends 2018-10-16 09:36:59 -07:00
f2fs.h f2fs: fix sbi->extent_list corruption issue 2019-02-12 20:02:29 +01:00
file.c f2fs: wait on atomic writes to count F2FS_CP_WB_DATA 2019-03-19 13:11:55 +01:00
gc.c f2fs: fix to reorder set_page_dirty and wait_on_page_writeback 2019-02-12 20:02:19 +01:00
gc.h f2fs: add SPDX license identifiers 2018-09-12 13:07:10 -07:00
hash.c f2fs: add SPDX license identifiers 2018-09-12 13:07:10 -07:00
inline.c Merge branch 'xarray' of git://git.infradead.org/users/willy/linux-dax 2018-10-28 11:35:40 -07:00
inode.c f2fs: guarantee journalled quota data by checkpoint 2018-10-22 17:54:47 -07:00
Kconfig fs/*/Kconfig: drop links to 404-compliant http://acl.bestbits.at 2018-01-01 12:45:37 -07:00
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
namei.c f2fs: guarantee journalled quota data by checkpoint 2018-10-22 17:54:47 -07:00
node.c f2fs: fix to reorder set_page_dirty and wait_on_page_writeback 2019-02-12 20:02:19 +01:00
node.h f2fs: add SPDX license identifiers 2018-09-12 13:07:10 -07:00
recovery.c f2fs: fix to keep project quota consistent 2018-10-22 17:54:48 -07:00
segment.c f2fs: fix to reorder set_page_dirty and wait_on_page_writeback 2019-02-12 20:02:19 +01:00
segment.h f2fs: checkpoint disabling 2018-10-16 09:36:39 -07:00
shrinker.c f2fs: fix sbi->extent_list corruption issue 2019-02-12 20:02:29 +01:00
super.c f2fs: fix use-after-free issue when accessing sbi->stat_info 2019-02-12 20:02:28 +01:00
sysfs.c f2fs: support superblock checksum 2018-09-30 18:34:18 -07:00
trace.c f2fs: add SPDX license identifiers 2018-09-12 13:07:10 -07:00
trace.h f2fs: add SPDX license identifiers 2018-09-12 13:07:10 -07:00
xattr.c f2fs: sanity check of xattr entry size 2019-01-09 17:46:01 +01:00
xattr.h f2fs: add SPDX license identifiers 2018-09-12 13:07:10 -07:00