Re: [PATCH] erofs: clean up the cache if cached decompression is disabled

From: Gao Xiang
Date: Mon Nov 11 2024 - 22:10:51 EST




On 2024/11/12 11:15, Chunhai Guo wrote:
Clean up the cache when cached decompression strategy is changed to
EROFS_ZIP_CACHE_DISABLED by remount.

Signed-off-by: Chunhai Guo <guochunhai@xxxxxxxx>
---
fs/erofs/super.c | 5 +++++
1 file changed, 5 insertions(+)

diff --git a/fs/erofs/super.c b/fs/erofs/super.c
index 320d586c3896..de2af862e65b 100644
--- a/fs/erofs/super.c
+++ b/fs/erofs/super.c
@@ -743,6 +743,11 @@ static int erofs_fc_reconfigure(struct fs_context *fc)
else
fc->sb_flags &= ~SB_POSIXACL;
+ if (new_sbi->opt.cache_strategy == EROFS_ZIP_CACHE_DISABLED) {

I guess we need to check if
(sbi->opt.cache_strategy != new_sbi->opt.cache_strategy &&
new_sbi->opt.cache_strategy == EROFS_ZIP_CACHE_DISABLED)


Thanks,
Gao Xiang

+ mutex_lock(&sbi->umount_mutex);
+ z_erofs_shrink_scan(sbi, ~0UL);
+ mutex_unlock(&sbi->umount_mutex);
+ }
sbi->opt = new_sbi->opt;
fc->sb_flags |= SB_RDONLY;