From patchwork Thu Feb 23 19:27:19 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jaegeuk Kim X-Patchwork-Id: 9588879 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 94BCE60210 for ; Thu, 23 Feb 2017 19:27:38 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 8320D283E0 for ; Thu, 23 Feb 2017 19:27:38 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 77CD328790; Thu, 23 Feb 2017 19:27:38 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.9 required=2.0 tests=BAYES_00,RCVD_IN_DNSWL_HI autolearn=unavailable version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 0580D283E0 for ; Thu, 23 Feb 2017 19:27:38 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751513AbdBWT1Y (ORCPT ); Thu, 23 Feb 2017 14:27:24 -0500 Received: from mail.kernel.org ([198.145.29.136]:39204 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751170AbdBWT1W (ORCPT ); Thu, 23 Feb 2017 14:27:22 -0500 Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id DF1D12011B; Thu, 23 Feb 2017 19:27:20 +0000 (UTC) Received: from localhost (107-1-141-74-ip-static.hfc.comcastbusiness.net [107.1.141.74]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 8EE5F2010B; Thu, 23 Feb 2017 19:27:19 +0000 (UTC) Date: Thu, 23 Feb 2017 11:27:19 -0800 From: Jaegeuk Kim To: Chao Yu Cc: Yunlong Song , cm224.lee@samsung.com, chao@kernel.org, sylinux@163.com, miaoxie@huawei.com, zhouxiyu@huawei.com, bintian.wang@huawei.com, linux-fsdevel@vger.kernel.org, linux-f2fs-devel@lists.sourceforge.net, linux-kernel@vger.kernel.org Subject: Re: [PATCH 2/2] f2fs: fix the case when there is no free segment to allocate for CURSEG_WARM_NODE Message-ID: <20170223192719.GD2026@jaegeuk.local> References: <1487335987-32601-1-git-send-email-yunlong.song@huawei.com> <1487335987-32601-3-git-send-email-yunlong.song@huawei.com> <20170217183933.GB2951@jaegeuk.local> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.7.0 (2016-08-17) X-Virus-Scanned: ClamAV using ClamSMTP Sender: linux-fsdevel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-fsdevel@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP On 02/23, Chao Yu wrote: > On 2017/2/18 2:39, Jaegeuk Kim wrote: > > Hi Yunlong, > > > > I already started to test this since a couple of days ago. :) > > > > http://git.kernel.org/cgit/linux/kernel/git/jaegeuk/f2fs.git/commit/?h=dev-test&id=908b5f463c82eaf972b149a26bb310f5e25064fd > > Hi, Jaegeuk, > > Could you send this patch into mailing list? Anyway I will comment in this patch > first. :) > > > > > Thanks, > > > > On 02/17, Yunlong Song wrote: > >> If the free segments are used up, then new_curseg will fail for > >> CURSEG_WARM_NODE, in this case, we should use change_curseg instead of > >> new_curseg. > >> > >> Signed-off-by: Yunlong Song > >> --- > >> fs/f2fs/segment.c | 2 -- > >> 1 file changed, 2 deletions(-) > >> > >> diff --git a/fs/f2fs/segment.c b/fs/f2fs/segment.c > >> index df2ff5c..32820cd 100644 > >> --- a/fs/f2fs/segment.c > >> +++ b/fs/f2fs/segment.c > >> @@ -1564,8 +1564,6 @@ static void allocate_segment_by_default(struct f2fs_sb_info *sbi, > >> > >> if (force) > >> new_curseg(sbi, type, true); > >> - else if (type == CURSEG_WARM_NODE) > > Would it be better to check CP_CRC_RECOVERY_FLAG for compatibility of old image? > > else if (!is_set_ckpt_flags(CP_CRC_RECOVERY_FLAG) && type == CURSEG_WARM_NODE) > new_curseg(sbi, type, false); Agreed, when considering any potential risk. ;) From 5b6c6be2d878bd7ec4dc2cb4e2a2da2779fe52ab Mon Sep 17 00:00:00 2001 From: Jaegeuk Kim Date: Tue, 14 Feb 2017 19:32:51 -0800 Subject: [PATCH] f2fs: use SSR for warm node as well We have had node chains, but haven't used it so far due to stale node blocks. Now, we have crc|cp_ver in node footer and give random cp_ver at format time, we can start to use it again. Signed-off-by: Jaegeuk Kim --- fs/f2fs/segment.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/fs/f2fs/segment.c b/fs/f2fs/segment.c index b2e0769a09d0..0b42b0cdd674 100644 --- a/fs/f2fs/segment.c +++ b/fs/f2fs/segment.c @@ -1563,7 +1563,8 @@ static void allocate_segment_by_default(struct f2fs_sb_info *sbi, if (force) new_curseg(sbi, type, true); - else if (type == CURSEG_WARM_NODE) + else if (!is_set_ckpt_flags(sbi, CP_CRC_RECOVERY_FLAG) && + type == CURSEG_WARM_NODE) new_curseg(sbi, type, false); else if (curseg->alloc_type == LFS && is_next_segment_free(sbi, type)) new_curseg(sbi, type, false);