inode_cache use pre-allocation to write its cache data. However,
pre-allocation is completely disabled in HMZONED mode.

We can technically enable inode_cache in the same way as relocation.
However, inode_cache is rarely used and the man page discourage using it.
So, let's just disable it for now.

Signed-off-by: Naohiro Aota <[email protected]>
---
 fs/btrfs/hmzoned.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/fs/btrfs/hmzoned.c b/fs/btrfs/hmzoned.c
index 871befbbb23b..f8f41cb3d22a 100644
--- a/fs/btrfs/hmzoned.c
+++ b/fs/btrfs/hmzoned.c
@@ -272,6 +272,12 @@ int btrfs_check_mountopts_hmzoned(struct btrfs_fs_info 
*info)
                return -EINVAL;
        }
 
+       if (btrfs_test_pending(info, SET_INODE_MAP_CACHE)) {
+               btrfs_err(info,
+                 "cannot enable inode map caching with HMZONED mode");
+               return -EINVAL;
+       }
+
        return 0;
 }
 
-- 
2.23.0

Reply via email to