* [f2fs-dev] [RFC PATCH] f2fs: expand f2fs_compr_option to allow ioctl setting compression level
@ 2023-03-30 15:37 ` Sheng Yong
0 siblings, 0 replies; 8+ messages in thread
From: Sheng Yong via Linux-f2fs-devel @ 2023-03-30 15:37 UTC (permalink / raw)
To: jaegeuk, chao, linux-f2fs-devel; +Cc: linux-kernel
This patch adds `level` in `struct f2fs_compr_option` to allow ioctl
setting compression level.
The first byte of original f2fs_compr_option indicates which algorithm
is used. While the new f2fs_compr_option splits the first byte into two
parts:
* the MBS 4 bits indicate the version
* the LBS 4 bits indicate the algorithm
The original f2fs_compr_option is renamed to f2fs_compr_option_base,
which is used to calculate ioctl command. For now, the version could
be 0 or 1.
When getting and setting compression option, the first byte should be
copied from userspace in advance to get the version. Then copy the
whole option according to version size.
The new f2fs_compr_option could be compatible with old userspace tool:
Old tool does not set the MSB 4 bits, which keep all 0. F2FS
detects option is version 0, and will not return or set level.
But if new tool is used on old F2FS:
New tool sets the MSB 4 bits to 1, get_option could return V0
values, but set_option will fail.
Signed-off-by: Sheng Yong <shengyong@oppo.com>
---
fs/f2fs/file.c | 41 ++++++++++++++++++++++++++++++++++-----
include/uapi/linux/f2fs.h | 39 ++++++++++++++++++++++++++++++++++---
2 files changed, 72 insertions(+), 8 deletions(-)
diff --git a/fs/f2fs/file.c b/fs/f2fs/file.c
index 14e9a20e68df3..909da18208d76 100644
--- a/fs/f2fs/file.c
+++ b/fs/f2fs/file.c
@@ -3904,10 +3904,27 @@ static int f2fs_ioc_get_compress_option(struct file *filp, unsigned long arg)
{
struct inode *inode = file_inode(filp);
struct f2fs_comp_option option;
+ __u8 ver;
+ size_t copt_sz;
if (!f2fs_sb_has_compression(F2FS_I_SB(inode)))
return -EOPNOTSUPP;
+ if (copy_from_user(&option.value, (__u8 __user *)arg, 1))
+ return -EFAULT;
+
+ ver = COPTION_VERSION(option.value);
+ copt_sz = COPTION_SIZE(ver);
+ if (copt_sz == UINT_MAX) {
+ /*
+ * In order to be compatible with old version option, whose
+ * algorithm is not initialized, the V0 option is returned
+ * instead of error.
+ */
+ ver = F2FS_COPTION_V0;
+ copt_sz = COPTION_SIZE(ver);
+ }
+
inode_lock_shared(inode);
if (!f2fs_compressed_file(inode)) {
@@ -3915,13 +3932,14 @@ static int f2fs_ioc_get_compress_option(struct file *filp, unsigned long arg)
return -ENODATA;
}
- option.algorithm = F2FS_I(inode)->i_compress_algorithm;
+ option.value = COPTION_VALUE(ver, F2FS_I(inode)->i_compress_algorithm);
option.log_cluster_size = F2FS_I(inode)->i_log_cluster_size;
+ option.level = F2FS_I(inode)->i_compress_level;
inode_unlock_shared(inode);
if (copy_to_user((struct f2fs_comp_option __user *)arg, &option,
- sizeof(option)))
+ copt_sz))
return -EFAULT;
return 0;
@@ -3932,6 +3950,8 @@ static int f2fs_ioc_set_compress_option(struct file *filp, unsigned long arg)
struct inode *inode = file_inode(filp);
struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
struct f2fs_comp_option option;
+ __u8 ver, alg;
+ size_t copt_sz;
int ret = 0;
if (!f2fs_sb_has_compression(sbi))
@@ -3940,14 +3960,23 @@ static int f2fs_ioc_set_compress_option(struct file *filp, unsigned long arg)
if (!(filp->f_mode & FMODE_WRITE))
return -EBADF;
+ if (copy_from_user(&option.value, (__u8 __user *)arg, 1))
+ return -EFAULT;
+
+ ver = COPTION_VERSION(option.value);
+ alg = COPTION_ALGORITHM(option.value);
+ copt_sz = COPTION_SIZE(ver);
+ if (copt_sz == UINT_MAX)
+ return -EFAULT;
+
if (copy_from_user(&option, (struct f2fs_comp_option __user *)arg,
- sizeof(option)))
+ copt_sz))
return -EFAULT;
if (!f2fs_compressed_file(inode) ||
option.log_cluster_size < MIN_COMPRESS_LOG_SIZE ||
option.log_cluster_size > MAX_COMPRESS_LOG_SIZE ||
- option.algorithm >= COMPRESS_MAX)
+ alg >= COMPRESS_MAX)
return -EINVAL;
file_start_write(filp);
@@ -3963,9 +3992,11 @@ static int f2fs_ioc_set_compress_option(struct file *filp, unsigned long arg)
goto out;
}
- F2FS_I(inode)->i_compress_algorithm = option.algorithm;
+ F2FS_I(inode)->i_compress_algorithm = alg;
F2FS_I(inode)->i_log_cluster_size = option.log_cluster_size;
F2FS_I(inode)->i_cluster_size = BIT(option.log_cluster_size);
+ if (ver == F2FS_COPTION_V1)
+ F2FS_I(inode)->i_compress_level = option.level;
f2fs_mark_inode_dirty_sync(inode, true);
if (!f2fs_is_compress_backend_ready(inode))
diff --git a/include/uapi/linux/f2fs.h b/include/uapi/linux/f2fs.h
index 955d440be1046..940cf46174357 100644
--- a/include/uapi/linux/f2fs.h
+++ b/include/uapi/linux/f2fs.h
@@ -37,9 +37,9 @@
#define F2FS_IOC_SEC_TRIM_FILE _IOW(F2FS_IOCTL_MAGIC, 20, \
struct f2fs_sectrim_range)
#define F2FS_IOC_GET_COMPRESS_OPTION _IOR(F2FS_IOCTL_MAGIC, 21, \
- struct f2fs_comp_option)
+ struct f2fs_comp_option_base)
#define F2FS_IOC_SET_COMPRESS_OPTION _IOW(F2FS_IOCTL_MAGIC, 22, \
- struct f2fs_comp_option)
+ struct f2fs_comp_option_base)
#define F2FS_IOC_DECOMPRESS_FILE _IO(F2FS_IOCTL_MAGIC, 23)
#define F2FS_IOC_COMPRESS_FILE _IO(F2FS_IOCTL_MAGIC, 24)
#define F2FS_IOC_START_ATOMIC_REPLACE _IO(F2FS_IOCTL_MAGIC, 25)
@@ -91,9 +91,42 @@ struct f2fs_sectrim_range {
__u64 flags;
};
-struct f2fs_comp_option {
+#define F2FS_COPTION_V0 0
+#define F2FS_COPTION_V1 1
+
+#define COPTION_VER_SHIFT 4
+#define COPTION_VER_MASK (~((1 << COPTION_VER_SHIFT) - 1))
+
+struct f2fs_comp_option_base {
__u8 algorithm;
__u8 log_cluster_size;
};
+struct f2fs_comp_option {
+ union {
+ struct f2fs_comp_option_base base;
+ struct {
+ __u8 value; // MSB 4 bit is version, LSB 4 bit is algorithm
+ __u8 log_cluster_size;
+ };
+ };
+ __u8 level;
+};
+
+#define COPTION_VERSION(val) ((val) >> COPTION_VER_SHIFT)
+#define COPTION_ALGORITHM(val) ((val) & ((1 << COPTION_VER_SHIFT) - 1))
+#define COPTION_VALUE(ver, alg) (((__u8)(ver) << COPTION_VER_SHIFT) | (__u8)(alg))
+#define COPTION_SIZE(ver) ({ \
+ size_t sz = UINT_MAX; \
+ switch (ver) { \
+ case F2FS_COPTION_V0: \
+ sz = offsetof(struct f2fs_comp_option, level); \
+ break; \
+ case F2FS_COPTION_V1: \
+ sz = sizeof(struct f2fs_comp_option); \
+ break; \
+ } \
+ sz; \
+})
+
#endif /* _UAPI_LINUX_F2FS_H */
--
2.25.1
_______________________________________________
Linux-f2fs-devel mailing list
Linux-f2fs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [RFC PATCH] f2fs: expand f2fs_compr_option to allow ioctl setting compression level
@ 2023-03-30 15:37 ` Sheng Yong
0 siblings, 0 replies; 8+ messages in thread
From: Sheng Yong @ 2023-03-30 15:37 UTC (permalink / raw)
To: jaegeuk, chao, linux-f2fs-devel; +Cc: linux-kernel, Sheng Yong
This patch adds `level` in `struct f2fs_compr_option` to allow ioctl
setting compression level.
The first byte of original f2fs_compr_option indicates which algorithm
is used. While the new f2fs_compr_option splits the first byte into two
parts:
* the MBS 4 bits indicate the version
* the LBS 4 bits indicate the algorithm
The original f2fs_compr_option is renamed to f2fs_compr_option_base,
which is used to calculate ioctl command. For now, the version could
be 0 or 1.
When getting and setting compression option, the first byte should be
copied from userspace in advance to get the version. Then copy the
whole option according to version size.
The new f2fs_compr_option could be compatible with old userspace tool:
Old tool does not set the MSB 4 bits, which keep all 0. F2FS
detects option is version 0, and will not return or set level.
But if new tool is used on old F2FS:
New tool sets the MSB 4 bits to 1, get_option could return V0
values, but set_option will fail.
Signed-off-by: Sheng Yong <shengyong@oppo.com>
---
fs/f2fs/file.c | 41 ++++++++++++++++++++++++++++++++++-----
include/uapi/linux/f2fs.h | 39 ++++++++++++++++++++++++++++++++++---
2 files changed, 72 insertions(+), 8 deletions(-)
diff --git a/fs/f2fs/file.c b/fs/f2fs/file.c
index 14e9a20e68df3..909da18208d76 100644
--- a/fs/f2fs/file.c
+++ b/fs/f2fs/file.c
@@ -3904,10 +3904,27 @@ static int f2fs_ioc_get_compress_option(struct file *filp, unsigned long arg)
{
struct inode *inode = file_inode(filp);
struct f2fs_comp_option option;
+ __u8 ver;
+ size_t copt_sz;
if (!f2fs_sb_has_compression(F2FS_I_SB(inode)))
return -EOPNOTSUPP;
+ if (copy_from_user(&option.value, (__u8 __user *)arg, 1))
+ return -EFAULT;
+
+ ver = COPTION_VERSION(option.value);
+ copt_sz = COPTION_SIZE(ver);
+ if (copt_sz == UINT_MAX) {
+ /*
+ * In order to be compatible with old version option, whose
+ * algorithm is not initialized, the V0 option is returned
+ * instead of error.
+ */
+ ver = F2FS_COPTION_V0;
+ copt_sz = COPTION_SIZE(ver);
+ }
+
inode_lock_shared(inode);
if (!f2fs_compressed_file(inode)) {
@@ -3915,13 +3932,14 @@ static int f2fs_ioc_get_compress_option(struct file *filp, unsigned long arg)
return -ENODATA;
}
- option.algorithm = F2FS_I(inode)->i_compress_algorithm;
+ option.value = COPTION_VALUE(ver, F2FS_I(inode)->i_compress_algorithm);
option.log_cluster_size = F2FS_I(inode)->i_log_cluster_size;
+ option.level = F2FS_I(inode)->i_compress_level;
inode_unlock_shared(inode);
if (copy_to_user((struct f2fs_comp_option __user *)arg, &option,
- sizeof(option)))
+ copt_sz))
return -EFAULT;
return 0;
@@ -3932,6 +3950,8 @@ static int f2fs_ioc_set_compress_option(struct file *filp, unsigned long arg)
struct inode *inode = file_inode(filp);
struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
struct f2fs_comp_option option;
+ __u8 ver, alg;
+ size_t copt_sz;
int ret = 0;
if (!f2fs_sb_has_compression(sbi))
@@ -3940,14 +3960,23 @@ static int f2fs_ioc_set_compress_option(struct file *filp, unsigned long arg)
if (!(filp->f_mode & FMODE_WRITE))
return -EBADF;
+ if (copy_from_user(&option.value, (__u8 __user *)arg, 1))
+ return -EFAULT;
+
+ ver = COPTION_VERSION(option.value);
+ alg = COPTION_ALGORITHM(option.value);
+ copt_sz = COPTION_SIZE(ver);
+ if (copt_sz == UINT_MAX)
+ return -EFAULT;
+
if (copy_from_user(&option, (struct f2fs_comp_option __user *)arg,
- sizeof(option)))
+ copt_sz))
return -EFAULT;
if (!f2fs_compressed_file(inode) ||
option.log_cluster_size < MIN_COMPRESS_LOG_SIZE ||
option.log_cluster_size > MAX_COMPRESS_LOG_SIZE ||
- option.algorithm >= COMPRESS_MAX)
+ alg >= COMPRESS_MAX)
return -EINVAL;
file_start_write(filp);
@@ -3963,9 +3992,11 @@ static int f2fs_ioc_set_compress_option(struct file *filp, unsigned long arg)
goto out;
}
- F2FS_I(inode)->i_compress_algorithm = option.algorithm;
+ F2FS_I(inode)->i_compress_algorithm = alg;
F2FS_I(inode)->i_log_cluster_size = option.log_cluster_size;
F2FS_I(inode)->i_cluster_size = BIT(option.log_cluster_size);
+ if (ver == F2FS_COPTION_V1)
+ F2FS_I(inode)->i_compress_level = option.level;
f2fs_mark_inode_dirty_sync(inode, true);
if (!f2fs_is_compress_backend_ready(inode))
diff --git a/include/uapi/linux/f2fs.h b/include/uapi/linux/f2fs.h
index 955d440be1046..940cf46174357 100644
--- a/include/uapi/linux/f2fs.h
+++ b/include/uapi/linux/f2fs.h
@@ -37,9 +37,9 @@
#define F2FS_IOC_SEC_TRIM_FILE _IOW(F2FS_IOCTL_MAGIC, 20, \
struct f2fs_sectrim_range)
#define F2FS_IOC_GET_COMPRESS_OPTION _IOR(F2FS_IOCTL_MAGIC, 21, \
- struct f2fs_comp_option)
+ struct f2fs_comp_option_base)
#define F2FS_IOC_SET_COMPRESS_OPTION _IOW(F2FS_IOCTL_MAGIC, 22, \
- struct f2fs_comp_option)
+ struct f2fs_comp_option_base)
#define F2FS_IOC_DECOMPRESS_FILE _IO(F2FS_IOCTL_MAGIC, 23)
#define F2FS_IOC_COMPRESS_FILE _IO(F2FS_IOCTL_MAGIC, 24)
#define F2FS_IOC_START_ATOMIC_REPLACE _IO(F2FS_IOCTL_MAGIC, 25)
@@ -91,9 +91,42 @@ struct f2fs_sectrim_range {
__u64 flags;
};
-struct f2fs_comp_option {
+#define F2FS_COPTION_V0 0
+#define F2FS_COPTION_V1 1
+
+#define COPTION_VER_SHIFT 4
+#define COPTION_VER_MASK (~((1 << COPTION_VER_SHIFT) - 1))
+
+struct f2fs_comp_option_base {
__u8 algorithm;
__u8 log_cluster_size;
};
+struct f2fs_comp_option {
+ union {
+ struct f2fs_comp_option_base base;
+ struct {
+ __u8 value; // MSB 4 bit is version, LSB 4 bit is algorithm
+ __u8 log_cluster_size;
+ };
+ };
+ __u8 level;
+};
+
+#define COPTION_VERSION(val) ((val) >> COPTION_VER_SHIFT)
+#define COPTION_ALGORITHM(val) ((val) & ((1 << COPTION_VER_SHIFT) - 1))
+#define COPTION_VALUE(ver, alg) (((__u8)(ver) << COPTION_VER_SHIFT) | (__u8)(alg))
+#define COPTION_SIZE(ver) ({ \
+ size_t sz = UINT_MAX; \
+ switch (ver) { \
+ case F2FS_COPTION_V0: \
+ sz = offsetof(struct f2fs_comp_option, level); \
+ break; \
+ case F2FS_COPTION_V1: \
+ sz = sizeof(struct f2fs_comp_option); \
+ break; \
+ } \
+ sz; \
+})
+
#endif /* _UAPI_LINUX_F2FS_H */
--
2.25.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [f2fs-dev] [RFC PATCH] f2fs: expand f2fs_compr_option to allow ioctl setting compression level
2023-03-30 15:37 ` Sheng Yong
@ 2023-03-30 16:15 ` Yangtao Li
-1 siblings, 0 replies; 8+ messages in thread
From: Yangtao Li via Linux-f2fs-devel @ 2023-03-30 16:15 UTC (permalink / raw)
To: linux-f2fs-devel; +Cc: jaegeuk, linux-kernel
Hi Sheng Yong,
Your idea, I also put forward before.
And has been sent to version 2, but Chao and Jaegeuk have no comments yet.
Time to talk about the series?
https://lore.kernel.org/linux-f2fs-devel/20230112133503.16802-1-frank.li@vivo.com/
Thx,
Yangtao
_______________________________________________
Linux-f2fs-devel mailing list
Linux-f2fs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [RFC PATCH] f2fs: expand f2fs_compr_option to allow ioctl setting compression level
@ 2023-03-30 16:15 ` Yangtao Li
0 siblings, 0 replies; 8+ messages in thread
From: Yangtao Li @ 2023-03-30 16:15 UTC (permalink / raw)
To: linux-f2fs-devel; +Cc: chao, jaegeuk, linux-kernel, shengyong
Hi Sheng Yong,
Your idea, I also put forward before.
And has been sent to version 2, but Chao and Jaegeuk have no comments yet.
Time to talk about the series?
https://lore.kernel.org/linux-f2fs-devel/20230112133503.16802-1-frank.li@vivo.com/
Thx,
Yangtao
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [RFC PATCH] f2fs: expand f2fs_compr_option to allow ioctl setting compression level
2023-03-30 15:37 ` Sheng Yong
(?)
(?)
@ 2023-03-30 21:25 ` kernel test robot
-1 siblings, 0 replies; 8+ messages in thread
From: kernel test robot @ 2023-03-30 21:25 UTC (permalink / raw)
To: Sheng Yong; +Cc: llvm, oe-kbuild-all
Hi Sheng,
[FYI, it's a private test report for your RFC patch.]
[auto build test WARNING on jaegeuk-f2fs/dev-test]
[also build test WARNING on jaegeuk-f2fs/dev next-20230330]
[cannot apply to linus/master v6.3-rc4]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/Sheng-Yong/f2fs-expand-f2fs_compr_option-to-allow-ioctl-setting-compression-level/20230330-233928
base: https://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs.git dev-test
patch link: https://lore.kernel.org/r/20230330153719.3085164-1-shengyong%40oppo.com
patch subject: [RFC PATCH] f2fs: expand f2fs_compr_option to allow ioctl setting compression level
config: x86_64-randconfig-a016 (https://download.01.org/0day-ci/archive/20230331/202303310556.cf7vlToW-lkp@intel.com/config)
compiler: clang version 14.0.6 (https://github.com/llvm/llvm-project f28c006a5895fc0e329fe15fead81e37457cb1d1)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://github.com/intel-lab-lkp/linux/commit/d454d77b29654af47145c3ff3b9a59714f84ca6a
git remote add linux-review https://github.com/intel-lab-lkp/linux
git fetch --no-tags linux-review Sheng-Yong/f2fs-expand-f2fs_compr_option-to-allow-ioctl-setting-compression-level/20230330-233928
git checkout d454d77b29654af47145c3ff3b9a59714f84ca6a
# save the config file
mkdir build_dir && cp config build_dir/.config
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=x86_64 olddefconfig
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=x86_64 SHELL=/bin/bash
If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <lkp@intel.com>
| Link: https://lore.kernel.org/oe-kbuild-all/202303310556.cf7vlToW-lkp@intel.com/
All warnings (new ones prefixed by >>):
In file included from <built-in>:1:
>> ./usr/include/linux/f2fs.h:109:16: warning: // comments are not allowed in this language [-Wcomment]
__u8 value; // MSB 4 bit is version, LSB 4 bit is algorithm
^
1 warning generated.
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [RFC PATCH] f2fs: expand f2fs_compr_option to allow ioctl setting compression level
2023-03-30 15:37 ` Sheng Yong
` (2 preceding siblings ...)
(?)
@ 2023-03-30 22:26 ` kernel test robot
-1 siblings, 0 replies; 8+ messages in thread
From: kernel test robot @ 2023-03-30 22:26 UTC (permalink / raw)
To: Sheng Yong; +Cc: oe-kbuild-all
Hi Sheng,
[FYI, it's a private test report for your RFC patch.]
[auto build test ERROR on jaegeuk-f2fs/dev-test]
[also build test ERROR on jaegeuk-f2fs/dev next-20230330]
[cannot apply to linus/master v6.3-rc4]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/Sheng-Yong/f2fs-expand-f2fs_compr_option-to-allow-ioctl-setting-compression-level/20230330-233928
base: https://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs.git dev-test
patch link: https://lore.kernel.org/r/20230330153719.3085164-1-shengyong%40oppo.com
patch subject: [RFC PATCH] f2fs: expand f2fs_compr_option to allow ioctl setting compression level
config: x86_64-randconfig-a015 (https://download.01.org/0day-ci/archive/20230331/202303310601.ffuatWCu-lkp@intel.com/config)
compiler: gcc-11 (Debian 11.3.0-8) 11.3.0
reproduce (this is a W=1 build):
# https://github.com/intel-lab-lkp/linux/commit/d454d77b29654af47145c3ff3b9a59714f84ca6a
git remote add linux-review https://github.com/intel-lab-lkp/linux
git fetch --no-tags linux-review Sheng-Yong/f2fs-expand-f2fs_compr_option-to-allow-ioctl-setting-compression-level/20230330-233928
git checkout d454d77b29654af47145c3ff3b9a59714f84ca6a
# save the config file
mkdir build_dir && cp config build_dir/.config
make W=1 O=build_dir ARCH=x86_64 olddefconfig
make W=1 O=build_dir ARCH=x86_64 SHELL=/bin/bash
If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <lkp@intel.com>
| Link: https://lore.kernel.org/oe-kbuild-all/202303310601.ffuatWCu-lkp@intel.com/
All errors (new ones prefixed by >>):
In file included from <command-line>:
>> ./usr/include/linux/f2fs.h:109:37: error: C++ style comments are not allowed in ISO C90
109 | __u8 value; // MSB 4 bit is version, LSB 4 bit is algorithm
| ^
./usr/include/linux/f2fs.h:109:37: note: (this will be reported only once per input file)
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [f2fs-dev] [RFC PATCH] f2fs: expand f2fs_compr_option to allow ioctl setting compression level
2023-03-30 16:15 ` Yangtao Li
@ 2023-03-31 1:30 ` Sheng Yong
-1 siblings, 0 replies; 8+ messages in thread
From: Sheng Yong via Linux-f2fs-devel @ 2023-03-31 1:30 UTC (permalink / raw)
To: Yangtao Li, linux-f2fs-devel; +Cc: jaegeuk, linux-kernel
On 2023/3/31 0:15, Yangtao Li wrote:
> Hi Sheng Yong,
>
> Your idea, I also put forward before.
>
> And has been sent to version 2, but Chao and Jaegeuk have no comments yet.
> Time to talk about the series?
>
> https://lore.kernel.org/linux-f2fs-devel/20230112133503.16802-1-frank.li@vivo.com/
>
Hi, Yangtao
Thanks for giving me the information. The f2fs_comp_option_v2 could also help
to get/set more options for compression. And I suggest to add a version or size
at the beginning of the struct so that it is easy to expand the struct in the
future.
Thanks,
shengyong
> Thx,
> Yangtao
_______________________________________________
Linux-f2fs-devel mailing list
Linux-f2fs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [RFC PATCH] f2fs: expand f2fs_compr_option to allow ioctl setting compression level
@ 2023-03-31 1:30 ` Sheng Yong
0 siblings, 0 replies; 8+ messages in thread
From: Sheng Yong @ 2023-03-31 1:30 UTC (permalink / raw)
To: Yangtao Li, linux-f2fs-devel; +Cc: chao, jaegeuk, linux-kernel
On 2023/3/31 0:15, Yangtao Li wrote:
> Hi Sheng Yong,
>
> Your idea, I also put forward before.
>
> And has been sent to version 2, but Chao and Jaegeuk have no comments yet.
> Time to talk about the series?
>
> https://lore.kernel.org/linux-f2fs-devel/20230112133503.16802-1-frank.li@vivo.com/
>
Hi, Yangtao
Thanks for giving me the information. The f2fs_comp_option_v2 could also help
to get/set more options for compression. And I suggest to add a version or size
at the beginning of the struct so that it is easy to expand the struct in the
future.
Thanks,
shengyong
> Thx,
> Yangtao
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2023-03-31 2:04 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-03-30 15:37 [f2fs-dev] [RFC PATCH] f2fs: expand f2fs_compr_option to allow ioctl setting compression level Sheng Yong via Linux-f2fs-devel
2023-03-30 15:37 ` Sheng Yong
2023-03-30 16:15 ` [f2fs-dev] " Yangtao Li via Linux-f2fs-devel
2023-03-30 16:15 ` Yangtao Li
2023-03-31 1:30 ` [f2fs-dev] " Sheng Yong via Linux-f2fs-devel
2023-03-31 1:30 ` Sheng Yong
2023-03-30 21:25 ` kernel test robot
2023-03-30 22:26 ` kernel test robot
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.