bcachefs: Fix build when CONFIG_UNICODE=n
authorKent Overstreet <kent.overstreet@linux.dev>
Tue, 15 Jul 2025 14:01:00 +0000 (10:01 -0400)
committerKent Overstreet <kent.overstreet@linux.dev>
Wed, 16 Jul 2025 21:32:33 +0000 (17:32 -0400)
94426e4201fb, which added the killswitch for casefolding, accidentally
removed some of the ifdefs we need to avoid build errors.

It appears we need better build testing for different configurations, it
took two weeks for the robots to catch this one.

Fixes: 94426e4201fb ("bcachefs: opts.casefold_disabled")
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
fs/bcachefs/dirent.c
fs/bcachefs/dirent.h

index a18d0f7..28875c5 100644 (file)
@@ -13,6 +13,7 @@
 
 #include <linux/dcache.h>
 
+#ifdef CONFIG_UNICODE
 int bch2_casefold(struct btree_trans *trans, const struct bch_hash_info *info,
                  const struct qstr *str, struct qstr *out_cf)
 {
@@ -33,6 +34,7 @@ int bch2_casefold(struct btree_trans *trans, const struct bch_hash_info *info,
        *out_cf = (struct qstr) QSTR_INIT(buf, ret);
        return 0;
 }
+#endif
 
 static unsigned bch2_dirent_name_bytes(struct bkey_s_c_dirent d)
 {
@@ -254,6 +256,7 @@ int bch2_dirent_init_name(struct bch_fs *c,
                if (!bch2_fs_casefold_enabled(c))
                        return -EOPNOTSUPP;
 
+#ifdef CONFIG_UNICODE
                memcpy(&dirent->v.d_cf_name_block.d_names[0], name->name, name->len);
 
                char *cf_out = &dirent->v.d_cf_name_block.d_names[name->len];
@@ -279,6 +282,7 @@ int bch2_dirent_init_name(struct bch_fs *c,
                dirent->v.d_cf_name_block.d_cf_name_len = cpu_to_le16(cf_len);
 
                EBUG_ON(bch2_dirent_get_casefold_name(dirent_i_to_s_c(dirent)).len != cf_len);
+#endif
        }
 
        unsigned u64s = dirent_val_u64s(name->len, cf_len);
index 1e17199..2e9cbf8 100644 (file)
@@ -23,6 +23,7 @@ struct bch_fs;
 struct bch_hash_info;
 struct bch_inode_info;
 
+#ifdef CONFIG_UNICODE
 int bch2_casefold(struct btree_trans *, const struct bch_hash_info *,
                  const struct qstr *, struct qstr *);
 
@@ -37,6 +38,14 @@ static inline int bch2_maybe_casefold(struct btree_trans *trans,
                return bch2_casefold(trans, info, str, out_cf);
        }
 }
+#else
+static inline int bch2_maybe_casefold(struct btree_trans *trans,
+                                     const struct bch_hash_info *info,
+                                     const struct qstr *str, struct qstr *out_cf)
+{
+       return -EOPNOTSUPP;
+}
+#endif
 
 struct qstr bch2_dirent_get_name(struct bkey_s_c_dirent);