[PATCH] f2fs: decompress data without workqueue

Jaegeuk Kim posted 1 patch 3 years, 11 months ago
fs/f2fs/data.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
[PATCH] f2fs: decompress data without workqueue
Posted by Jaegeuk Kim 3 years, 11 months ago
Let's decompress data under the same context to avoid workqueue delay.

Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
---
 fs/f2fs/data.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/fs/f2fs/data.c b/fs/f2fs/data.c
index 54a7a8ad994d..37aa7ac5d463 100644
--- a/fs/f2fs/data.c
+++ b/fs/f2fs/data.c
@@ -285,10 +285,12 @@ static void f2fs_read_end_io(struct bio *bio)
 		return;
 	}
 
-	if (ctx && (ctx->enabled_steps & (STEP_DECRYPT | STEP_DECOMPRESS))) {
+	if (ctx && (ctx->enabled_steps & STEP_DECRYPT)) {
 		INIT_WORK(&ctx->work, f2fs_post_read_work);
 		queue_work(ctx->sbi->post_read_wq, &ctx->work);
 	} else {
+		if (ctx && (ctx->enabled_steps & STEP_DECOMPRESS))
+			f2fs_handle_step_decompress(ctx);
 		f2fs_verify_and_finish_bio(bio);
 	}
 }
-- 
2.36.1.124.g0e6072fb45-goog
Re: [PATCH] f2fs: decompress data without workqueue
Posted by Jaegeuk Kim 3 years, 11 months ago
Please hold any test, since this patch has a bug.

On 05/18, Jaegeuk Kim wrote:
> Let's decompress data under the same context to avoid workqueue delay.
> 
> Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
> ---
>  fs/f2fs/data.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/fs/f2fs/data.c b/fs/f2fs/data.c
> index 54a7a8ad994d..37aa7ac5d463 100644
> --- a/fs/f2fs/data.c
> +++ b/fs/f2fs/data.c
> @@ -285,10 +285,12 @@ static void f2fs_read_end_io(struct bio *bio)
>  		return;
>  	}
>  
> -	if (ctx && (ctx->enabled_steps & (STEP_DECRYPT | STEP_DECOMPRESS))) {
> +	if (ctx && (ctx->enabled_steps & STEP_DECRYPT)) {
>  		INIT_WORK(&ctx->work, f2fs_post_read_work);
>  		queue_work(ctx->sbi->post_read_wq, &ctx->work);
>  	} else {
> +		if (ctx && (ctx->enabled_steps & STEP_DECOMPRESS))
> +			f2fs_handle_step_decompress(ctx);
>  		f2fs_verify_and_finish_bio(bio);
>  	}
>  }
> -- 
> 2.36.1.124.g0e6072fb45-goog