We let to pass zstd compression parameter even if its not fully written.
For example:
btrfs prop set /btrfs compression zst
btrfs prop get /btrfs compression
compression=zst
zlib and lzo are fine.
Fix it by using the expected number of char in strncmp().
Signed-off-by: Anand Jain <anand.jain@xxxxxxxxxx>
Reviewed-by: Nikolay Borisov <nborisov@xxxxxxxx>
---
fs/btrfs/props.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/fs/btrfs/props.c b/fs/btrfs/props.c
index 0939554ffa63..b324a5fd7864 100644
--- a/fs/btrfs/props.c
+++ b/fs/btrfs/props.c
@@ -284,7 +284,7 @@ static int prop_compression_apply(struct inode *inode, const char *value,
btrfs_set_fs_incompat(fs_info, COMPRESS_LZO);
} else if (!strncmp("zlib", value, 4)) {
type = BTRFS_COMPRESS_ZLIB;
- } else if (!strncmp("zstd", value, len)) {
+ } else if (!strncmp("zstd", value, 4)) {
type = BTRFS_COMPRESS_ZSTD;
btrfs_set_fs_incompat(fs_info, COMPRESS_ZSTD);
} else {
--
2.17.1