* [PATCH] mkfs.f2fs: fix wrong curseg check @ 2017-08-26 0:10 Jaegeuk Kim 2017-08-28 9:47 ` Chao Yu 0 siblings, 1 reply; 5+ messages in thread From: Jaegeuk Kim @ 2017-08-26 0:10 UTC (permalink / raw) To: linux-f2fs-devel; +Cc: Jaegeuk Kim We should avoid i==j, otherwise we always assign 0~5 segments. Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org> --- mkfs/f2fs_format.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mkfs/f2fs_format.c b/mkfs/f2fs_format.c index b379e80..219c2a7 100644 --- a/mkfs/f2fs_format.c +++ b/mkfs/f2fs_format.c @@ -123,7 +123,7 @@ static void verify_cur_segs(void) for (i = 0; i < NR_CURSEG_TYPE; i++) { for (j = 0; j < NR_CURSEG_TYPE; j++) - if (c.cur_seg[i] == c.cur_seg[j]) + if (i != j && c.cur_seg[i] == c.cur_seg[j]) break; } -- 2.14.0.rc1.383.gd1ce394fe2-goog ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH] mkfs.f2fs: fix wrong curseg check 2017-08-26 0:10 [PATCH] mkfs.f2fs: fix wrong curseg check Jaegeuk Kim @ 2017-08-28 9:47 ` Chao Yu 2017-09-05 12:43 ` Chao Yu 0 siblings, 1 reply; 5+ messages in thread From: Chao Yu @ 2017-08-28 9:47 UTC (permalink / raw) To: Jaegeuk Kim, linux-f2fs-devel On 2017/8/26 8:10, Jaegeuk Kim wrote: > We should avoid i==j, otherwise we always assign 0~5 segments. > > Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org> Reviewed-by: Chao Yu <yuchao0@huawei.com> > --- > mkfs/f2fs_format.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/mkfs/f2fs_format.c b/mkfs/f2fs_format.c > index b379e80..219c2a7 100644 > --- a/mkfs/f2fs_format.c > +++ b/mkfs/f2fs_format.c > @@ -123,7 +123,7 @@ static void verify_cur_segs(void) > > for (i = 0; i < NR_CURSEG_TYPE; i++) { > for (j = 0; j < NR_CURSEG_TYPE; j++) > - if (c.cur_seg[i] == c.cur_seg[j]) > + if (i != j && c.cur_seg[i] == c.cur_seg[j]) > break; > } > > ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] mkfs.f2fs: fix wrong curseg check 2017-08-28 9:47 ` Chao Yu @ 2017-09-05 12:43 ` Chao Yu 2017-09-05 17:47 ` Jaegeuk Kim 0 siblings, 1 reply; 5+ messages in thread From: Chao Yu @ 2017-09-05 12:43 UTC (permalink / raw) To: Chao Yu, Jaegeuk Kim, linux-f2fs-devel Hi Jaegeuk, I still can hit kernel panic with this patch, the reason is reorder of log header during mkfs is not actually executed, it needs to change as below. On 2017/8/28 17:47, Chao Yu wrote: > On 2017/8/26 8:10, Jaegeuk Kim wrote: >> We should avoid i==j, otherwise we always assign 0~5 segments. >> >> Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org> > > Reviewed-by: Chao Yu <yuchao0@huawei.com> > >> --- >> mkfs/f2fs_format.c | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/mkfs/f2fs_format.c b/mkfs/f2fs_format.c >> index b379e80..219c2a7 100644 >> --- a/mkfs/f2fs_format.c >> +++ b/mkfs/f2fs_format.c >> @@ -123,7 +123,7 @@ static void verify_cur_segs(void) >> >> for (i = 0; i < NR_CURSEG_TYPE; i++) { >> for (j = 0; j < NR_CURSEG_TYPE; j++) >> - if (c.cur_seg[i] == c.cur_seg[j]) >> + if (i != j && c.cur_seg[i] == c.cur_seg[j]) >> break; if (i != j && c.cur_seg[i] == c.cur_seg[j]) goto reorder; return; reorder: c.cur_seg[0] = 0; Thanks, >> } >> >> > > > ------------------------------------------------------------------------------ > Check out the vibrant tech community on one of the world's most > engaging tech sites, Slashdot.org! http://sdm.link/slashdot > _______________________________________________ > Linux-f2fs-devel mailing list > Linux-f2fs-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel > ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] mkfs.f2fs: fix wrong curseg check 2017-09-05 12:43 ` Chao Yu @ 2017-09-05 17:47 ` Jaegeuk Kim 2017-09-06 3:41 ` Chao Yu 0 siblings, 1 reply; 5+ messages in thread From: Jaegeuk Kim @ 2017-09-05 17:47 UTC (permalink / raw) To: Chao Yu; +Cc: linux-f2fs-devel On 09/05, Chao Yu wrote: > Hi Jaegeuk, > > I still can hit kernel panic with this patch, the reason is reorder of log header > during mkfs is not actually executed, it needs to change as below. > > On 2017/8/28 17:47, Chao Yu wrote: > > On 2017/8/26 8:10, Jaegeuk Kim wrote: > >> We should avoid i==j, otherwise we always assign 0~5 segments. > >> > >> Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org> > > > > Reviewed-by: Chao Yu <yuchao0@huawei.com> > > > >> --- > >> mkfs/f2fs_format.c | 2 +- > >> 1 file changed, 1 insertion(+), 1 deletion(-) > >> > >> diff --git a/mkfs/f2fs_format.c b/mkfs/f2fs_format.c > >> index b379e80..219c2a7 100644 > >> --- a/mkfs/f2fs_format.c > >> +++ b/mkfs/f2fs_format.c > >> @@ -123,7 +123,7 @@ static void verify_cur_segs(void) > >> > >> for (i = 0; i < NR_CURSEG_TYPE; i++) { > >> for (j = 0; j < NR_CURSEG_TYPE; j++) > >> - if (c.cur_seg[i] == c.cur_seg[j]) > >> + if (i != j && c.cur_seg[i] == c.cur_seg[j]) > >> break; > > if (i != j && c.cur_seg[i] == c.cur_seg[j]) Can be overflowed? How about this? >From 53923f74b188028c4f5a8b64b330f0d7b12adf24 Mon Sep 17 00:00:00 2001 From: Jaegeuk Kim <jaegeuk@kernel.org> Date: Thu, 24 Aug 2017 19:33:10 -0700 Subject: [PATCH] mkfs.f2fs: fix wrong curseg check We should avoid i==j, otherwise we always assign 0~5 segments. Reviewed-by: Chao Yu <yuchao0@huawei.com> Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org> --- mkfs/f2fs_format.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/mkfs/f2fs_format.c b/mkfs/f2fs_format.c index b379e80..8319f24 100644 --- a/mkfs/f2fs_format.c +++ b/mkfs/f2fs_format.c @@ -120,14 +120,18 @@ next: static void verify_cur_segs(void) { int i, j; + bool reorder = false; for (i = 0; i < NR_CURSEG_TYPE; i++) { - for (j = 0; j < NR_CURSEG_TYPE; j++) - if (c.cur_seg[i] == c.cur_seg[j]) + for (j = i + 1; j < NR_CURSEG_TYPE; j++) { + if (c.cur_seg[i] == c.cur_seg[j]) { + reorder = true; break; + } + } } - if (i == NR_CURSEG_TYPE && j == NR_CURSEG_TYPE) + if (!reorder) return; c.cur_seg[0] = 0; -- 2.14.0.rc1.383.gd1ce394fe2-goog ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH] mkfs.f2fs: fix wrong curseg check 2017-09-05 17:47 ` Jaegeuk Kim @ 2017-09-06 3:41 ` Chao Yu 0 siblings, 0 replies; 5+ messages in thread From: Chao Yu @ 2017-09-06 3:41 UTC (permalink / raw) To: Jaegeuk Kim, Chao Yu; +Cc: linux-f2fs-devel On 2017/9/6 1:47, Jaegeuk Kim wrote: > On 09/05, Chao Yu wrote: >> Hi Jaegeuk, >> >> I still can hit kernel panic with this patch, the reason is reorder of log header >> during mkfs is not actually executed, it needs to change as below. >> >> On 2017/8/28 17:47, Chao Yu wrote: >>> On 2017/8/26 8:10, Jaegeuk Kim wrote: >>>> We should avoid i==j, otherwise we always assign 0~5 segments. >>>> >>>> Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org> >>> >>> Reviewed-by: Chao Yu <yuchao0@huawei.com> >>> >>>> --- >>>> mkfs/f2fs_format.c | 2 +- >>>> 1 file changed, 1 insertion(+), 1 deletion(-) >>>> >>>> diff --git a/mkfs/f2fs_format.c b/mkfs/f2fs_format.c >>>> index b379e80..219c2a7 100644 >>>> --- a/mkfs/f2fs_format.c >>>> +++ b/mkfs/f2fs_format.c >>>> @@ -123,7 +123,7 @@ static void verify_cur_segs(void) >>>> >>>> for (i = 0; i < NR_CURSEG_TYPE; i++) { >>>> for (j = 0; j < NR_CURSEG_TYPE; j++) >>>> - if (c.cur_seg[i] == c.cur_seg[j]) >>>> + if (i != j && c.cur_seg[i] == c.cur_seg[j]) >>>> break; >> >> if (i != j && c.cur_seg[i] == c.cur_seg[j]) > > Can be overflowed? > > How about this? It's OK to me. :) Thanks, > >>From 53923f74b188028c4f5a8b64b330f0d7b12adf24 Mon Sep 17 00:00:00 2001 > From: Jaegeuk Kim <jaegeuk@kernel.org> > Date: Thu, 24 Aug 2017 19:33:10 -0700 > Subject: [PATCH] mkfs.f2fs: fix wrong curseg check > > We should avoid i==j, otherwise we always assign 0~5 segments. > > Reviewed-by: Chao Yu <yuchao0@huawei.com> > Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org> > --- > mkfs/f2fs_format.c | 10 +++++++--- > 1 file changed, 7 insertions(+), 3 deletions(-) > > diff --git a/mkfs/f2fs_format.c b/mkfs/f2fs_format.c > index b379e80..8319f24 100644 > --- a/mkfs/f2fs_format.c > +++ b/mkfs/f2fs_format.c > @@ -120,14 +120,18 @@ next: > static void verify_cur_segs(void) > { > int i, j; > + bool reorder = false; > > for (i = 0; i < NR_CURSEG_TYPE; i++) { > - for (j = 0; j < NR_CURSEG_TYPE; j++) > - if (c.cur_seg[i] == c.cur_seg[j]) > + for (j = i + 1; j < NR_CURSEG_TYPE; j++) { > + if (c.cur_seg[i] == c.cur_seg[j]) { > + reorder = true; > break; > + } > + } > } > > - if (i == NR_CURSEG_TYPE && j == NR_CURSEG_TYPE) > + if (!reorder) > return; > > c.cur_seg[0] = 0; > ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2017-09-06 3:42 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2017-08-26 0:10 [PATCH] mkfs.f2fs: fix wrong curseg check Jaegeuk Kim 2017-08-28 9:47 ` Chao Yu 2017-09-05 12:43 ` Chao Yu 2017-09-05 17:47 ` Jaegeuk Kim 2017-09-06 3:41 ` Chao Yu
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.