Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754094AbbLOQHV (ORCPT ); Tue, 15 Dec 2015 11:07:21 -0500 Received: from mail.kernel.org ([198.145.29.136]:41018 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753949AbbLOQHR (ORCPT ); Tue, 15 Dec 2015 11:07:17 -0500 Subject: Re: [f2fs-dev] [PATCH 7/8] f2fs: introduce new option for controlling data flush To: Jaegeuk Kim References: <00fa01d136fa$7c028980$74079c80$@samsung.com> Cc: linux-kernel@vger.kernel.org, linux-f2fs-devel@lists.sourceforge.net From: Chao Yu X-Enigmail-Draft-Status: N1110 Message-ID: <56703AA8.3000607@kernel.org> Date: Wed, 16 Dec 2015 00:07:04 +0800 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:38.0) Gecko/20100101 Thunderbird/38.4.0 MIME-Version: 1.0 In-Reply-To: <00fa01d136fa$7c028980$74079c80$@samsung.com> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 3833 Lines: 103 Hi Jaegeuk, The 7, 8 patches could not be merged on current dev-test branch due to I generate them on incorrect base line. I will rebase and resent them tomorrow, sorry for the noisy. Thanks, On 12/15/15 1:35 PM, Chao Yu wrote: > Add a new option 'data_flush' to enable/disable data flush functionality > in checkpoint. > > Signed-off-by: Chao Yu > --- > Documentation/filesystems/f2fs.txt | 2 ++ > fs/f2fs/checkpoint.c | 2 +- > fs/f2fs/f2fs.h | 1 + > fs/f2fs/super.c | 7 +++++++ > 4 files changed, 11 insertions(+), 1 deletion(-) > > diff --git a/Documentation/filesystems/f2fs.txt b/Documentation/filesystems/f2fs.txt > index 8088bd9..727373e 100644 > --- a/Documentation/filesystems/f2fs.txt > +++ b/Documentation/filesystems/f2fs.txt > @@ -151,6 +151,8 @@ noextent_cache Disable an extent cache based on rb-tree explicitly, see > the above extent_cache mount option. > noinline_data Disable the inline data feature, inline data feature is > enabled by default. > +data_flush Enable data flushing during checkpoint in order to > + persist data of regular and symlink. > > ================================================================================ > DEBUGFS ENTRIES > diff --git a/fs/f2fs/checkpoint.c b/fs/f2fs/checkpoint.c > index a73909c..2fdf271 100644 > --- a/fs/f2fs/checkpoint.c > +++ b/fs/f2fs/checkpoint.c > @@ -855,7 +855,7 @@ static int block_operations(struct f2fs_sb_info *sbi) > > retry_flush_datas: > /* write all the dirty data pages */ > - if (get_pages(sbi, F2FS_DIRTY_DATAS)) { > + if (test_opt(sbi, DATA_FLUSH) && get_pages(sbi, F2FS_DIRTY_DATAS)) { > sync_dirty_inodes(sbi, FILE_INODE); > if (unlikely(f2fs_cp_error(sbi))) { > err = -EIO; > diff --git a/fs/f2fs/f2fs.h b/fs/f2fs/f2fs.h > index 4d44732..ee1f0a8 100644 > --- a/fs/f2fs/f2fs.h > +++ b/fs/f2fs/f2fs.h > @@ -54,6 +54,7 @@ > #define F2FS_MOUNT_FASTBOOT 0x00001000 > #define F2FS_MOUNT_EXTENT_CACHE 0x00002000 > #define F2FS_MOUNT_FORCE_FG_GC 0x00004000 > +#define F2FS_MOUNT_DATA_FLUSH 0x00008000 > > #define clear_opt(sbi, option) (sbi->mount_opt.opt &= ~F2FS_MOUNT_##option) > #define set_opt(sbi, option) (sbi->mount_opt.opt |= F2FS_MOUNT_##option) > diff --git a/fs/f2fs/super.c b/fs/f2fs/super.c > index 051bce6..694e092 100644 > --- a/fs/f2fs/super.c > +++ b/fs/f2fs/super.c > @@ -67,6 +67,7 @@ enum { > Opt_extent_cache, > Opt_noextent_cache, > Opt_noinline_data, > + Opt_data_flush, > Opt_nodiscard, > Opt_err, > }; > @@ -92,6 +93,7 @@ static match_table_t f2fs_tokens = { > {Opt_extent_cache, "extent_cache"}, > {Opt_noextent_cache, "noextent_cache"}, > {Opt_noinline_data, "noinline_data"}, > + {Opt_data_flush, "data_flush"}, > {Opt_nodiscard, "nodiscard"}, > {Opt_err, NULL}, > }; > @@ -411,6 +413,9 @@ static int parse_options(struct super_block *sb, char *options) > case Opt_noinline_data: > clear_opt(sbi, INLINE_DATA); > break; > + case Opt_data_flush: > + clear_opt(sbi, DATA_FLUSH); > + break; > default: > f2fs_msg(sb, KERN_ERR, > "Unrecognized mount option \"%s\" or missing value", > @@ -694,6 +699,8 @@ static int f2fs_show_options(struct seq_file *seq, struct dentry *root) > seq_puts(seq, ",extent_cache"); > else > seq_puts(seq, ",noextent_cache"); > + if (test_opt(sbi, DATA_FLUSH)) > + seq_puts(seq, ",data_flush"); > seq_printf(seq, ",active_logs=%u", sbi->active_logs); > > return 0; > -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/