Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1583389 > unrolled thread
| Started by | Yunlong Song <yunlong.song@huawei.com> |
|---|---|
| First post | 2017-02-17 13:50 +0100 |
| Last post | 2017-02-23 20:30 +0100 |
| Articles | 4 — 3 participants |
Back to article view | Back to linux.kernel
This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by
below is the oldest one visible, not the original post.
[PATCH 2/2] f2fs: fix the case when there is no free segment to allocate for CURSEG_WARM_NODE Yunlong Song <yunlong.song@huawei.com> - 2017-02-17 13:50 +0100
Re: [PATCH 2/2] f2fs: fix the case when there is no free segment to allocate for CURSEG_WARM_NODE Jaegeuk Kim <jaegeuk@kernel.org> - 2017-02-17 19:40 +0100
Re: [PATCH 2/2] f2fs: fix the case when there is no free segment to allocate for CURSEG_WARM_NODE Chao Yu <yuchao0@huawei.com> - 2017-02-23 13:10 +0100
Re: [PATCH 2/2] f2fs: fix the case when there is no free segment to allocate for CURSEG_WARM_NODE Jaegeuk Kim <jaegeuk@kernel.org> - 2017-02-23 20:30 +0100
| From | Yunlong Song <yunlong.song@huawei.com> |
|---|---|
| Date | 2017-02-17 13:50 +0100 |
| Subject | [PATCH 2/2] f2fs: fix the case when there is no free segment to allocate for CURSEG_WARM_NODE |
| Message-ID | <tbQ93-4lj-9@gated-at.bofh.it> |
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 <yunlong.song@huawei.com> --- 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) - new_curseg(sbi, type, false); else if (curseg->alloc_type == LFS && is_next_segment_free(sbi, type)) new_curseg(sbi, type, false); else if (need_SSR(sbi) && get_ssr_segment(sbi, type)) -- 1.8.5.2
[toc] | [next] | [standalone]
| From | Jaegeuk Kim <jaegeuk@kernel.org> |
|---|---|
| Date | 2017-02-17 19:40 +0100 |
| Subject | Re: [PATCH 2/2] f2fs: fix the case when there is no free segment to allocate for CURSEG_WARM_NODE |
| Message-ID | <tbVBM-7Rv-19@gated-at.bofh.it> |
| In reply to | #1583389 |
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 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 <yunlong.song@huawei.com> > --- > 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) > - new_curseg(sbi, type, false); > else if (curseg->alloc_type == LFS && is_next_segment_free(sbi, type)) > new_curseg(sbi, type, false); > else if (need_SSR(sbi) && get_ssr_segment(sbi, type)) > -- > 1.8.5.2
[toc] | [prev] | [next] | [standalone]
| From | Chao Yu <yuchao0@huawei.com> |
|---|---|
| Date | 2017-02-23 13:10 +0100 |
| Subject | Re: [PATCH 2/2] f2fs: fix the case when there is no free segment to allocate for CURSEG_WARM_NODE |
| Message-ID | <te0nD-15h-3@gated-at.bofh.it> |
| In reply to | #1583646 |
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 <yunlong.song@huawei.com> >> --- >> 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); Thanks, >> - new_curseg(sbi, type, false); >> else if (curseg->alloc_type == LFS && is_next_segment_free(sbi, type)) >> new_curseg(sbi, type, false); >> else if (need_SSR(sbi) && get_ssr_segment(sbi, type)) >> -- >> 1.8.5.2 > > . >
[toc] | [prev] | [next] | [standalone]
| From | Jaegeuk Kim <jaegeuk@kernel.org> |
|---|---|
| Date | 2017-02-23 20:30 +0100 |
| Subject | Re: [PATCH 2/2] f2fs: fix the case when there is no free segment to allocate for CURSEG_WARM_NODE |
| Message-ID | <te7fs-5FA-1@gated-at.bofh.it> |
| In reply to | #1586847 |
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 <yunlong.song@huawei.com> > >> --- > >> 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 <jaegeuk@kernel.org> 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 <jaegeuk@kernel.org> --- 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); -- 2.11.0
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web