summaryrefslogtreecommitdiffstats
path: root/fs/erofs/internal.h
diff options
context:
space:
mode:
authorHuang Jianan <huangjianan@oppo.com>2021-12-06 22:35:52 +0800
committerGao Xiang <hsiangkao@linux.alibaba.com>2021-12-08 09:42:18 +0800
commit40452ffca3c1a0f2994e826f9fa213b107f1a2d4 (patch)
treec7f6126f75ba80183a7a7cd34832d4f75e594455 /fs/erofs/internal.h
parent168e9a76200c54c584a23aa88c62c53c4b0edd66 (diff)
downloadlinux-stable-40452ffca3c1a0f2994e826f9fa213b107f1a2d4.tar.gz
linux-stable-40452ffca3c1a0f2994e826f9fa213b107f1a2d4.tar.bz2
linux-stable-40452ffca3c1a0f2994e826f9fa213b107f1a2d4.zip
erofs: add sysfs node to control sync decompression strategy
Although readpage is a synchronous path, there will be no additional kworker scheduling overhead in non-atomic contexts together with dm-verity. Let's add a sysfs node to disable sync decompression as an option. Link: https://lore.kernel.org/r/20211206143552.8384-1-huangjianan@oppo.com Reviewed-by: Chao Yu <chao@kernel.org> Signed-off-by: Huang Jianan <huangjianan@oppo.com> Signed-off-by: Gao Xiang <hsiangkao@linux.alibaba.com>
Diffstat (limited to 'fs/erofs/internal.h')
-rw-r--r--fs/erofs/internal.h10
1 files changed, 8 insertions, 2 deletions
diff --git a/fs/erofs/internal.h b/fs/erofs/internal.h
index 43f0332fa489..8e70435629e5 100644
--- a/fs/erofs/internal.h
+++ b/fs/erofs/internal.h
@@ -56,12 +56,18 @@ struct erofs_device_info {
u32 mapped_blkaddr;
};
+enum {
+ EROFS_SYNC_DECOMPRESS_AUTO,
+ EROFS_SYNC_DECOMPRESS_FORCE_ON,
+ EROFS_SYNC_DECOMPRESS_FORCE_OFF
+};
+
struct erofs_mount_opts {
#ifdef CONFIG_EROFS_FS_ZIP
/* current strategy of how to use managed cache */
unsigned char cache_strategy;
- /* strategy of sync decompression (false - auto, true - force on) */
- bool readahead_sync_decompress;
+ /* strategy of sync decompression (0 - auto, 1 - force on, 2 - force off) */
+ unsigned int sync_decompress;
/* threshold for decompression synchronously */
unsigned int max_sync_decompress_pages;