f2fs: clean up codes in f2fs_gc related with write_checkpoint
diff mbox

Message ID 1487681028-19410-1-git-send-email-yunlong.song@huawei.com
State New
Headers show

Commit Message

Yunlong Song Feb. 21, 2017, 12:43 p.m. UTC
Signed-off-by: Yunlong Song <yunlong.song@huawei.com>
---
 fs/f2fs/gc.c | 16 ++++------------
 1 file changed, 4 insertions(+), 12 deletions(-)

Comments

Yunlong Song Feb. 23, 2017, 2:52 a.m. UTC | #1
Ping...

Since has_not_enough_free_secs(sbi, 0, 0) must be true if has_not_enough_free_secs(sbi, sec_freed, 0) is true,
write_checkpoint is sure to execute in both conditions, and segno is NULL_SEGNO in both conditions.

On 2017/2/21 20:43, Yunlong Song wrote:
> Signed-off-by: Yunlong Song <yunlong.song@huawei.com>
> ---
>  fs/f2fs/gc.c | 16 ++++------------
>  1 file changed, 4 insertions(+), 12 deletions(-)
>
> diff --git a/fs/f2fs/gc.c b/fs/f2fs/gc.c
> index 88e5e7b..e5f2569 100644
> --- a/fs/f2fs/gc.c
> +++ b/fs/f2fs/gc.c
> @@ -943,23 +943,15 @@ int f2fs_gc(struct f2fs_sb_info *sbi, bool sync, bool background)
>  		 * enough free sections, we should flush dent/node blocks and do
>  		 * garbage collections.
>  		 */
> -		if (__get_victim(sbi, &segno, gc_type) ||
> -						prefree_segments(sbi)) {
> -			ret = write_checkpoint(sbi, &cpc);
> -			if (ret)
> -				goto stop;
> -			segno = NULL_SEGNO;
> -		} else if (has_not_enough_free_secs(sbi, 0, 0)) {
> -			ret = write_checkpoint(sbi, &cpc);
> -			if (ret)
> -				goto stop;
> -		}
> +		ret = write_checkpoint(sbi, &cpc);
> +		if (ret)
> +			goto stop;
>  	} else if (gc_type == BG_GC && !background) {
>  		/* f2fs_balance_fs doesn't need to do BG_GC in critical path. */
>  		goto stop;
>  	}
>  
> -	if (segno == NULL_SEGNO && !__get_victim(sbi, &segno, gc_type))
> +	if (!__get_victim(sbi, &segno, gc_type))
>  		goto stop;
>  	ret = 0;
>
Chao Yu Feb. 24, 2017, 1:40 a.m. UTC | #2
3On 2017/2/21 20:43, Yunlong Song wrote:
> Signed-off-by: Yunlong Song <yunlong.song@huawei.com>

Reviewed-by: Chao Yu <yuchao0@huawei.com>

Patch
diff mbox

diff --git a/fs/f2fs/gc.c b/fs/f2fs/gc.c
index 88e5e7b..e5f2569 100644
--- a/fs/f2fs/gc.c
+++ b/fs/f2fs/gc.c
@@ -943,23 +943,15 @@  int f2fs_gc(struct f2fs_sb_info *sbi, bool sync, bool background)
 		 * enough free sections, we should flush dent/node blocks and do
 		 * garbage collections.
 		 */
-		if (__get_victim(sbi, &segno, gc_type) ||
-						prefree_segments(sbi)) {
-			ret = write_checkpoint(sbi, &cpc);
-			if (ret)
-				goto stop;
-			segno = NULL_SEGNO;
-		} else if (has_not_enough_free_secs(sbi, 0, 0)) {
-			ret = write_checkpoint(sbi, &cpc);
-			if (ret)
-				goto stop;
-		}
+		ret = write_checkpoint(sbi, &cpc);
+		if (ret)
+			goto stop;
 	} else if (gc_type == BG_GC && !background) {
 		/* f2fs_balance_fs doesn't need to do BG_GC in critical path. */
 		goto stop;
 	}
 
-	if (segno == NULL_SEGNO && !__get_victim(sbi, &segno, gc_type))
+	if (!__get_victim(sbi, &segno, gc_type))
 		goto stop;
 	ret = 0;