On 2017/9/10 3:17, Jaegeuk Kim wrote:
> In android, we'd better wait for fstrim completion instead of issuing the
> discard commands asynchronous.
> 
> Signed-off-by: Jaegeuk Kim <[email protected]>

Reviewed-by: Chao Yu <[email protected]>

> ---
>  fs/f2fs/segment.c | 6 +++++-
>  1 file changed, 5 insertions(+), 1 deletion(-)
> 
> diff --git a/fs/f2fs/segment.c b/fs/f2fs/segment.c
> index f96e61e8ddf7..beb15c834a34 100644
> --- a/fs/f2fs/segment.c
> +++ b/fs/f2fs/segment.c
> @@ -1076,6 +1076,9 @@ static int __issue_discard_cmd(struct f2fs_sb_info 
> *sbi, bool issue_cond)
>                       if (dcc->pend_list_tag[i] & P_TRIM) {
>                               __submit_discard_cmd(sbi, dc);
>                               issued++;
> +
> +                             if (fatal_signal_pending(current))
> +                                     break;
>                               continue;
>                       }
>  
> @@ -1192,7 +1195,7 @@ void stop_discard_thread(struct f2fs_sb_info *sbi)
>       }
>  }
>  
> -/* This comes from f2fs_put_super */
> +/* This comes from f2fs_put_super and f2fs_trim_fs */
>  void f2fs_wait_discard_bios(struct f2fs_sb_info *sbi)
>  {
>       __issue_discard_cmd(sbi, false);
> @@ -2227,6 +2230,7 @@ int f2fs_trim_fs(struct f2fs_sb_info *sbi, struct 
> fstrim_range *range)
>       }
>       /* It's time to issue all the filed discards */
>       mark_discard_range_all(sbi);
> +     f2fs_wait_discard_bios(sbi);
>  out:
>       range->len = F2FS_BLK_TO_BYTES(cpc.trimmed);
>       return err;
> 


------------------------------------------------------------------------------
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
[email protected]
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel

Reply via email to