Commit 40c35a0b authored by Kent Overstreet's avatar Kent Overstreet
Browse files

bcachefs: Fix build when CONFIG_UNICODE=n



94426e42, 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: 94426e42 ("bcachefs: opts.casefold_disabled")
Signed-off-by: default avatarKent Overstreet <kent.overstreet@linux.dev>
parent c02b943f
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -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);
+9 −0
Original line number Diff line number Diff line
@@ -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);