[v2] f2fs: stop discard thread if has fsck tag

Message ID 20221028143733.57322-1-frank.li@vivo.com
State New
Headers
Series [v2] f2fs: stop discard thread if has fsck tag |

Commit Message

李扬韬 Oct. 28, 2022, 2:37 p.m. UTC
  Under the current logic, after the fsck flag is set,
the discard thread will still run periodically.

So stop the discard thread from running to avoid
energy consumption after the fsck flag is set.

Fixes: d618477473eb ("f2fs: stop issue discard if something wrong with f2fs")
Signed-off-by: Yangtao Li <frank.li@vivo.com>
---
v2:
- commit msg changes.
 fs/f2fs/segment.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
  

Comments

Chao Yu Nov. 1, 2022, 3:17 p.m. UTC | #1
On 2022/10/28 22:37, Yangtao Li wrote:
> Under the current logic, after the fsck flag is set,
> the discard thread will still run periodically.
> 
> So stop the discard thread from running to avoid
> energy consumption after the fsck flag is set.
> 
> Fixes: d618477473eb ("f2fs: stop issue discard if something wrong with f2fs")
> Signed-off-by: Yangtao Li <frank.li@vivo.com>
> ---
> v2:
> - commit msg changes.
>   fs/f2fs/segment.c | 4 ++--
>   1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/fs/f2fs/segment.c b/fs/f2fs/segment.c
> index 7786351de429..b3600bcadfc7 100644
> --- a/fs/f2fs/segment.c
> +++ b/fs/f2fs/segment.c
> @@ -1716,8 +1716,8 @@ static int issue_discard_thread(void *data)
>   		if (kthread_should_stop())
>   			return 0;
>   		if (is_sbi_flag_set(sbi, SBI_NEED_FSCK)) {
> -			wait_ms = dpolicy.max_interval;
> -			continue;
> +			dcc->f2fs_issue_discard = NULL;
> +			return 0;

I don't think there will be much energy consumption, I guess
we can keep as it is.

>   		}
>   		if (!atomic_read(&dcc->discard_cmd_cnt))
>   			continue;
  

Patch

diff --git a/fs/f2fs/segment.c b/fs/f2fs/segment.c
index 7786351de429..b3600bcadfc7 100644
--- a/fs/f2fs/segment.c
+++ b/fs/f2fs/segment.c
@@ -1716,8 +1716,8 @@  static int issue_discard_thread(void *data)
 		if (kthread_should_stop())
 			return 0;
 		if (is_sbi_flag_set(sbi, SBI_NEED_FSCK)) {
-			wait_ms = dpolicy.max_interval;
-			continue;
+			dcc->f2fs_issue_discard = NULL;
+			return 0;
 		}
 		if (!atomic_read(&dcc->discard_cmd_cnt))
 			continue;