]> www.infradead.org Git - users/jedix/linux-maple.git/commit
bcachefs: bcachefs_metadata_version_casefolding
authorJoshua Ashton <joshua@froggi.es>
Sun, 13 Aug 2023 17:34:17 +0000 (18:34 +0100)
committerKent Overstreet <kent.overstreet@linux.dev>
Sat, 15 Mar 2025 01:02:15 +0000 (21:02 -0400)
commitd37c14ac6f05ec98db9b3d9db424dc73a0f5b1cd
treeec86a78663c9222afcfaec3b85ed968ba4d205cf
parent76872d46b7fa8b6dc8303de4ed45a9ac6ed92f91
bcachefs: bcachefs_metadata_version_casefolding

This patch implements support for case-insensitive file name lookups
in bcachefs.

The implementation uses the same UTF-8 lowering and normalization that
ext4 and f2fs is using.

More information is provided in Documentation/bcachefs/casefolding.rst

Compatibility notes:

This uses the new versioning scheme for incompatible features where an
incompatible feature is tied to a version number: the superblock says
"we may use incompat features up to x" and "incompat features up to x
are in use", disallowing mounting by previous versions.

Additionally, and old style incompat feature bit is used, so that
kernels without utf8 casefolding support know if casefolding
specifically is in use and they're allowed to mount.

Signed-off-by: Joshua Ashton <joshua@froggi.es>
Cc: André Almeida <andrealmeid@igalia.com>
Cc: Gabriel Krisman Bertazi <krisman@suse.de>
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
15 files changed:
Documentation/filesystems/bcachefs/casefolding.rst [new file with mode: 0644]
fs/bcachefs/bcachefs.h
fs/bcachefs/bcachefs_format.h
fs/bcachefs/dirent.c
fs/bcachefs/dirent.h
fs/bcachefs/dirent_format.h
fs/bcachefs/fs-common.c
fs/bcachefs/fs-ioctl.c
fs/bcachefs/fs-ioctl.h
fs/bcachefs/fs.c
fs/bcachefs/inode_format.h
fs/bcachefs/sb-errors_format.h
fs/bcachefs/str_hash.c
fs/bcachefs/str_hash.h
fs/bcachefs/super.c