Hi Yunlei,

> -----Original Message-----
> From: Yunlei He [mailto:[email protected]]
> Sent: Tuesday, September 08, 2015 6:51 PM
> To: [email protected]; [email protected]; 
> [email protected]
> Cc: [email protected]; Yunlei He
> Subject: [f2fs-dev] [PATCH] f2fs: add a judgment in add_discard_addrs
> 
> CP_DISCARD traverse all segments in fstrim_range to add small discards,
> it is better to select entry->len bigger than trim_minlen.

If we mount with 'discard' option, f2fs will trigger real-time discard
when do checkpoint. If we add judgment condition here, fragmented invalid
blocks will not be discarded since we stop adding them in pending list
through __add_discard_entry.

Thanks,

> 
> Signed-off-by: Yunlei He <[email protected]>
> ---
>  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 78e6d06..a0dab7a 100644
> --- a/fs/f2fs/segment.c
> +++ b/fs/f2fs/segment.c
> @@ -599,7 +599,8 @@ static void add_discard_addrs(struct f2fs_sb_info *sbi, 
> struct cp_control
> *cpc)
>                       break;
> 
>               end = __find_rev_next_zero_bit(dmap, max_blocks, start + 1);
> -             __add_discard_entry(sbi, cpc, se, start, end);
> +             if(force && cpc->trim_minlen >= (end - start))
> +                     __add_discard_entry(sbi, cpc, se, start, end);
>       }
>  }
> 
> --
> 1.9.1


------------------------------------------------------------------------------
_______________________________________________
Linux-f2fs-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel

Reply via email to