On 02/25, Hou Pengyang wrote:
> On 2017/2/24 18:28, Chao Yu wrote:
> > On 2017/2/24 18:01, Hou Pengyang wrote:
> > > Under scenerio with large number of dirty nodes, and these nodes are 
> > > flushed
> > > in SSR mode during cp. enough free segemts now, no need to do fggc.
> > 
> > We'd better break out of GC flow once we encounter cp error, so additional
> > condition judgment is not needed.
> > 
> 
> In (ret || !has_not_enough_free_secs(sbi, sec_freed, 0)),
> if cp return error(NOT zero), flow will goto stop directly without
> has_not_enough_free_secs checking;
> if cp return ok(zero), has_not_enough_free_secs would be checked.

Well, I think it'd be fine to do one gc by a background thread.

Thanks,

> 
> Thanks,
> 
> > Thanks,
> > 
> > > 
> > > Signed-off-by: Hou Pengyang <houpengy...@huawei.com>
> > > ---
> > >   fs/f2fs/gc.c | 2 +-
> > >   1 file changed, 1 insertion(+), 1 deletion(-)
> > > 
> > > diff --git a/fs/f2fs/gc.c b/fs/f2fs/gc.c
> > > index 6c996e3..41bdfb7 100644
> > > --- a/fs/f2fs/gc.c
> > > +++ b/fs/f2fs/gc.c
> > > @@ -959,7 +959,7 @@ int f2fs_gc(struct f2fs_sb_info *sbi, bool sync, bool 
> > > background)
> > >                    * garbage collections.
> > >                    */
> > >                   ret = write_checkpoint(sbi, &cpc);
> > > -         if (ret)
> > > +         if (ret || !has_not_enough_free_secs(sbi, sec_freed, 0))
> > >                           goto stop;
> > >           } else if (gc_type == BG_GC && !background) {
> > >                   /* f2fs_balance_fs doesn't need to do BG_GC in critical 
> > > path. */
> > > 
> > 
> > 
> > .
> > 
> 

------------------------------------------------------------------------------
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

Reply via email to