bcachefs: Fix dirent_casefold_mismatch repair
authorKent Overstreet <kent.overstreet@linux.dev>
Sat, 31 May 2025 04:11:52 +0000 (00:11 -0400)
committerKent Overstreet <kent.overstreet@linux.dev>
Wed, 4 Jun 2025 20:45:41 +0000 (16:45 -0400)
commit2bf380c005adcc653464215a5170afa3367c0b22
treec991887ba9e2807c260c95bc138b46111f41e7ea
parentb938d3c970175b2f3d22865dc077482fc6137828
bcachefs: Fix dirent_casefold_mismatch repair

Instead of simply recreating a mis-casefolded dirent, use the str_hash
repair code, which will rename it if necessary - the dirent might have
been created again with the correct casefolding.

Factor out out bch2_str_hash_repair key() from
__bch2_str_hash_check_key() for the new path to use, and export
bch2_dirent_create_key() as well.

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
fs/bcachefs/dirent.c
fs/bcachefs/dirent.h
fs/bcachefs/fsck.c
fs/bcachefs/str_hash.c
fs/bcachefs/str_hash.h