Let's decompress data under the same context to avoid workqueue delay.
Signed-off-by: Jaegeuk Kim <[email protected]>
---
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
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 <[email protected]>
> ---
> 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