Re: [f2fs-dev] [PATCH 01/10] f2fs: reassign new segment for mode=lfs

From: Jaegeuk Kim
Date: Wed Jan 04 2017 - 17:48:36 EST


On 01/04, Chao Yu wrote:
> Hi Jaegeuk,
>
> On 2016/12/31 2:51, Jaegeuk Kim wrote:
> > Otherwise we can remain wrong curseg->next_blkoff, resulting in fsck failure.
>
> Could you explain more about this case?

I remember that I hit an fsck failure when I was testing f2fs with an smr drive.
I didn't dig into the error, but the fact is that our roll-forward recovery
doesn't update current segment information at every time, but allocate a new
section at the end of the work like below.
I just enabled it for the LFS mode in order to avoid that failure.

Thanks,

>
> Thanks,
>
> >
> > Signed-off-by: Jaegeuk Kim <jaegeuk@xxxxxxxxxx>
> > ---
> > fs/f2fs/segment.c | 3 ---
> > 1 file changed, 3 deletions(-)
> >
> > diff --git a/fs/f2fs/segment.c b/fs/f2fs/segment.c
> > index be9e4d244d75..4e5ffe1d97e4 100644
> > --- a/fs/f2fs/segment.c
> > +++ b/fs/f2fs/segment.c
> > @@ -1428,9 +1428,6 @@ void allocate_new_segments(struct f2fs_sb_info *sbi)
> > unsigned int old_segno;
> > int i;
> >
> > - if (test_opt(sbi, LFS))
> > - return;
> > -
> > for (i = CURSEG_HOT_DATA; i <= CURSEG_COLD_DATA; i++) {
> > curseg = CURSEG_I(sbi, i);
> > old_segno = curseg->segno;
> >