LINUX.ORG.RU

История изменений

Исправление Deleted, (текущая версия) :

Докладываю. Нашёл, где в ядре (точнее в модуле ext4) проверка на несовместимые features и «занопил» грубо говоря.

Здесь: ~/linux-4.19.58/fs/ext4/super.c

static int ext4_feature_set_ok(struct super_block *sb, int readonly)
{
    /*
	if (ext4_has_unknown_ext4_incompat_features(sb)) {
... */...

Пересобрал. И получил доступ из 4.19 к тому разделу, с casefold. Даже на запись. Даже с кириллицей в названии. Самый большой косяк, когда загружаешься обратно в 5.2 (уже с честным casefold) - оно игнорирует файл в регистрах и всегда отдает первый попавшийся какой подошел по case insensitive.

типа:

# ls
testfile.txt  TestFile.TXT  тестфайл.txt
# cat testfile.txt
111
# cat TestFile.TXT
111 /* <--- тут должно быть 222, как записало 4.19 */
# echo "444FFF" >> testfileF.txt
# cat TestfileF.txt
444FFF
# cat TESTfileF.txt
444FFF

Ладно, запись с косяками. Но на чтение-то вроде вполне можно монтировать. Т.е. - таки не техническое ограничение, похоже.

Исходная версия Deleted, :

Докладываю. Нашёл, где в ядре (точнее в модуле ext4) проверка на несовместимые features и «занопил» грубо говоря.

Здесь: ~/linux-4.19.58/fs/ext4/super.c

static int ext4_feature_set_ok(struct super_block *sb, int readonly)
{
    /*
	if (ext4_has_unknown_ext4_incompat_features(sb)) {
... */...

Пересобрал. И получил доступ из 4.19 к тому разделу, с casefold. Даже на запись. Даже с кириллицей в названии. Самый большой косяк, когда загружаешься обратно в 5.2 (уже с честным casefold) - оно игнорирует файл в регистрах и всегда отдает первый попавшийся какой подошел по case insensitive.

типа:

# ls
testfile.txt  TestFile.TXT  тестфайл.txt
# cat testfile.txt
111
# cat TestFile.txt
111 /* <--- тут должно быть 222, как записало 4.19 */
# echo "444FFF" >> testfileF.txt
# cat TestfileF.txt
444FFF
# cat TESTfileF.txt
444FFF

Ладно, запись с косяками. Но на чтение-то вроде вполне можно монтировать. Т.е. - таки не техническое ограничение, похоже.