linux/fs/f2fs
Chao Yu 36b35a0dbe f2fs: support data flush in background
Previously, when finishing a checkpoint, we have persisted all fs meta
info including meta inode, node inode, dentry page of directory inode, so,
after a sudden power cut, f2fs can recover from last checkpoint with full
directory structure.

But during checkpoint, we didn't flush dirty pages of regular and symlink
inode, so such dirty datas still in memory will be lost in that moment of
power off.

In order to reduce the chance of lost data, this patch enables
f2fs_balance_fs_bg with the ability of data flushing. It will try to flush
user data before starting a checkpoint. So user's data written after last
checkpoint which may not be fsynced could be saved.

When we mount with data_flush option, after every period of cp_interval
(could be configured in sysfs: /sys/fs/f2fs/device/cp_interval) seconds
user data could be flushed into device once f2fs_balance_fs_bg was called
in kworker thread or gc thread.

Signed-off-by: Chao Yu <chao2.yu@samsung.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2015-12-17 09:53:26 -08:00
..
acl.c f2fs: make posix_acl_create() safer and cleaner 2015-05-07 11:38:31 -07:00
acl.h f2fs: avoid deadlock on init_inode_metadata 2014-11-03 16:07:33 -08:00
checkpoint.c f2fs: stat dirty regular/symlink inodes 2015-12-17 09:53:19 -08:00
crypto_fname.c f2fs crypto: clean up error handling in f2fs_fname_setup_filename 2015-06-01 16:21:08 -07:00
crypto_key.c KEYS: Merge the type-specific data with the payload data 2015-10-21 15:18:36 +01:00
crypto_policy.c f2fs crypto: do not set encryption policy for non-directory by ioctl 2015-06-01 16:21:07 -07:00
crypto.c f2fs crypto: add alloc_bounce_page 2015-06-11 15:04:20 -07:00
data.c f2fs: record dirty status of regular/symlink inode 2015-12-16 08:58:12 -08:00
debug.c f2fs: stat dirty regular/symlink inodes 2015-12-17 09:53:19 -08:00
dir.c f2fs: record dirty status of regular/symlink inode 2015-12-16 08:58:12 -08:00
extent_cache.c f2fs: kill f2fs_drop_largest_extent 2015-12-04 12:07:57 -08:00
f2fs_crypto.h f2fs crypto: remove alloc_page for bounce_page 2015-06-01 16:21:10 -07:00
f2fs.h f2fs: stat dirty regular/symlink inodes 2015-12-17 09:53:19 -08:00
file.c f2fs: don't grab super block buffer header all the time 2015-12-16 08:58:06 -08:00
gc.c f2fs: use sbi->blocks_per_seg to avoid unnecessary calculation 2015-12-04 12:07:57 -08:00
gc.h f2fs: support synchronous gc in ioctl 2015-10-09 16:20:56 -07:00
hash.c f2fs: introduce dot and dotdot name check 2015-05-28 15:41:34 -07:00
inline.c f2fs: support fiemap for inline_data 2015-10-20 11:33:21 -07:00
inode.c f2fs: record dirty status of regular/symlink inode 2015-12-16 08:58:12 -08:00
Kconfig f2fs: fix typo 2015-08-21 22:43:32 -07:00
Makefile f2fs: maintain extent cache in separated file 2015-08-04 14:09:58 -07:00
namei.c fs/f2fs/namei.c: remove unnecessary new_valid_dev() check 2015-11-09 15:11:24 -08:00
node.c f2fs: clean up node page updating flow 2015-12-14 09:09:17 -08:00
node.h f2fs: use sbi->blocks_per_seg to avoid unnecessary calculation 2015-12-04 12:07:57 -08:00
recovery.c f2fs: clean up argument of recover_data 2015-12-04 12:07:56 -08:00
segment.c f2fs: support data flush in background 2015-12-17 09:53:26 -08:00
segment.h Revert "f2fs: do not skip dentry block writes" 2015-10-12 13:38:02 -07:00
shrinker.c f2fs: shrink free_nids entries 2015-08-20 09:00:06 -07:00
super.c f2fs: introduce new option for controlling data flush 2015-12-16 09:25:48 -08:00
trace.c f2fs: add sbi and page pointer in f2fs_io_info 2015-05-28 15:41:32 -07:00
trace.h f2fs: add sbi and page pointer in f2fs_io_info 2015-05-28 15:41:32 -07:00
xattr.c f2fs: xattr simplifications 2015-11-13 20:34:34 -05:00
xattr.h f2fs crypto: add encryption xattr support 2015-05-28 15:41:47 -07:00