linux/fs/f2fs
Chao Yu 2cc5dcf7a9 f2fs: fix to account IO correctly
commit 4c58ed0768 upstream.

Below race can cause reversed reference on dirty count, fix it by
relocating __submit_bio() and inc_page_count().

Thread A				Thread B
- f2fs_inplace_write_data
 - f2fs_submit_page_bio
  - __submit_bio
					- f2fs_write_end_io
					 - dec_page_count
  - inc_page_count

Cc: <stable@vger.kernel.org>
Fixes: d1b3e72d54 ("f2fs: submit bio of in-place-update pages")
Signed-off-by: Chao Yu <yuchao0@huawei.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-11-13 11:15:01 -08:00
..
acl.c f2fs: preserve i_mode if __f2fs_set_acl() fails 2017-07-28 17:48:54 -07:00
acl.h f2fs: remove dead code f2fs_check_acl 2016-09-14 16:52:36 -07:00
checkpoint.c f2fs: fix invalid memory access 2018-10-13 09:27:29 +02:00
data.c f2fs: fix to account IO correctly 2018-11-13 11:15:01 -08:00
debug.c f2fs: show available_nids in f2fs/status 2017-05-03 10:04:57 -07:00
dir.c f2fs: clear radix tree dirty tag of pages whose dirty flag is cleared 2017-09-11 21:32:38 -07:00
extent_cache.c f2fs: fix to check extent cache in f2fs_drop_extent_tree 2018-05-30 07:52:33 +02:00
f2fs.h f2fs: fix to active page in lru list for read path 2018-09-19 22:43:40 +02:00
file.c f2fs: Fix uninitialized return in f2fs_ioc_shutdown() 2018-09-19 22:43:44 +02:00
gc.c f2fs: fix to skip GC if type in SSA and SIT is inconsistent 2018-09-19 22:43:43 +02:00
gc.h f2fs: fix potential overflow when adjusting GC cycle 2017-08-15 10:40:14 -07:00
hash.c f2fs: check entire encrypted bigname when finding a dentry 2017-05-04 11:44:35 -04:00
inline.c f2fs: fix to wait on page writeback before updating page 2018-09-19 22:43:44 +02:00
inode.c f2fs: give message and set need_fsck given broken node id 2018-07-17 11:39:33 +02:00
Kconfig f2fs: add mount option to select fault injection ratio 2016-05-07 10:32:22 -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 do d_instantiate/unlock_new_inode combinations safely 2018-05-30 07:51:47 +02:00
node.c f2fs: try grabbing node page lock aggressively in sync scenario 2018-09-19 22:43:42 +02:00
node.h f2fs: simplify the way of calulating next nat address 2017-07-04 02:11:34 -07:00
recovery.c f2fs: fix to recover inode's i_flags during POR 2018-11-13 11:14:59 -08:00
segment.c f2fs: sanity check for total valid node blocks 2018-08-24 13:09:21 +02:00
segment.h f2fs: do not set free of current section 2018-09-19 22:43:40 +02:00
shrinker.c f2fs: avoid casted negative value as shrink count 2016-11-23 12:11:03 -08:00
super.c f2fs: report error if quota off error during umount 2018-11-13 11:15:00 -08:00
sysfs.c f2fs: fix defined but not used build warnings 2018-09-19 22:43:40 +02:00
trace.c f2fs: use set_page_private marcro in f2fs_trace_pid 2017-03-24 15:10:49 -04:00
trace.h f2fs: add sbi and page pointer in f2fs_io_info 2015-05-28 15:41:32 -07:00
xattr.c f2fs: avoid race in between read xattr & write xattr 2017-09-07 20:57:20 -07:00
xattr.h f2fs: guard macro variables with braces 2017-04-10 19:48:10 -07:00