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 a18d0f78704de7ffb2c7d8964939270de5327697..28875c5c86add78b217255e6d620e1a30177b07e 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 1e17199cc5c756154bf126d1e61665cc4a296766..2e9cbf8123c4e9bd04a5c7dad6372b2f94de198a 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);