linux/fs/f2fs
Chao Yu e7a4feb0ab f2fs: fix to let checkpoint guarantee atomic page persistence
1. thread A: commit_inmem_pages submit data into block layer, but
haven't waited it writeback.
2. thread A: commit_inmem_pages update related node.
3. thread B: do checkpoint, flush all nodes to disk.
4. SPOR

Then, atomic file becomes corrupted since nodes is flushed before data.

This patch fixes to treat atomic page as checkpoint guaranteed one,
then in checkpoint, we can make sure all atomic page can be writebacked
with metadata of atomic file.

Signed-off-by: Chao Yu <yuchao0@huawei.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2018-05-31 11:31:50 -07:00
..
acl.c posix_acl: convert posix_acl.a_refcount from atomic_t to refcount_t 2018-01-02 19:27:28 -08:00
acl.h f2fs: remove dead code f2fs_check_acl 2016-09-14 16:52:36 -07:00
checkpoint.c f2fs: remove duplicated dquot_initialize and fix error handling 2018-05-31 11:31:47 -07:00
data.c f2fs: fix to let checkpoint guarantee atomic page persistence 2018-05-31 11:31:50 -07:00
debug.c f2fs: inject fault to kzalloc 2018-01-02 19:27:29 -08:00
dir.c page cache: use xa_lock 2018-04-11 10:28:39 -07:00
extent_cache.c f2fs: remove redundant initialization of pointer 'p' 2018-03-13 08:05:45 +09:00
f2fs.h Revert "f2fs: add ovp valid_blocks check for bg gc victim to fg_gc" 2018-05-31 11:31:50 -07:00
file.c f2fs: treat volatile file's data as hot one 2018-05-31 11:31:49 -07:00
gc.c Revert "f2fs: add ovp valid_blocks check for bg gc victim to fg_gc" 2018-05-31 11:31:50 -07:00
gc.h f2fs: add an ioctl to disable GC for specific file 2018-01-22 14:56:35 -08:00
hash.c f2fs: check entire encrypted bigname when finding a dentry 2017-05-04 11:44:35 -04:00
inline.c f2fs: remove unmatched zero_user_segment when convert inline dentry 2018-05-31 11:31:44 -07:00
inode.c f2fs: fix to initialize i_current_depth according to inode type 2018-05-31 11:31:50 -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: fix to initialize i_current_depth according to inode type 2018-05-31 11:31:50 -07:00
node.c f2fs: don't drop any page on f2fs_cp_error() case 2018-05-31 11:31:49 -07:00
node.h f2fs: don't track new nat entry in nat set 2018-03-27 20:10:29 -07:00
recovery.c f2fs: do not check F2FS_INLINE_DOTS in recover 2018-05-31 11:31:47 -07:00
segment.c f2fs: treat volatile file's data as hot one 2018-05-31 11:31:49 -07:00
segment.h Revert "f2fs: add ovp valid_blocks check for bg gc victim to fg_gc" 2018-05-31 11:31:50 -07:00
shrinker.c f2fs: obsolete ALLOC_NID_LIST list 2017-10-10 12:49:53 -07:00
super.c f2fs: fix to initialize i_current_depth according to inode type 2018-05-31 11:31:50 -07:00
sysfs.c f2fs: fix spelling mistake: "extenstion" -> "extension" 2018-05-31 11:31:49 -07:00
trace.c f2fs: fix potential hangtask in f2fs_trace_pid 2018-01-02 19:27:30 -08:00
trace.h f2fs: add sbi and page pointer in f2fs_io_info 2015-05-28 15:41:32 -07:00
xattr.c f2fs: correct removexattr behavior for null valued extended attribute 2018-01-22 14:56:57 -08:00
xattr.h f2fs: guard macro variables with braces 2017-04-10 19:48:10 -07:00