bug#77887: libparted detects ext4 without journal as ext2
Pascal Hambourg <[email protected]> Thu, 17 Apr 2025 22:06:30 +0200
| Newsgroups | gmane.comp.gnu.parted.bugs |
|---|---|
| Organization | Plouf ! |
| Message-ID | <[email protected]> |
This is a multi-part message in MIME format. --------------Wk2tTdeuI0L5QDDFH60gWqdN Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Package: parted Version: 3.6 Severity: minor Tags: patch easy Reference: <https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1103454> Dear maintainers, libparted wrongly detects ext4 without journal as ext2 instead of ext4. Steps to reproduce: truncate -s 1G blob mkfs.ext4 -O ^has_journal blob blkid blob -> ext4 parted blob print -> ext2 mount -t ext2 blob /mnt -> "couldn't mount as ext2 due to feature incompatibilities" mount -t ext4 blob /mnt -> ok In libparted/fs/ext2/interface.c, _ext2_generic_probe() considers ext4 as a subset of ext3 which is ext2 with journal. IMO this is wrong because ext4 without journal may have other incompatible features. Please consider the attached trivial patch (untested). --------------Wk2tTdeuI0L5QDDFH60gWqdN Content-Type: text/x-patch; charset=UTF-8; name="detect-ext4-nojournal.patch" Content-Disposition: attachment; filename="detect-ext4-nojournal.patch" Content-Transfer-Encoding: base64 RnJvbSBhMjdkYjhkMzE3YzcxZGJhYWNkNTE0NzU3MjEzNjFiZmI0MDQxNTJiIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXNjYWwgSGFtYm91cmcgPHBhc2NhbEBwbG91Zi5m ci5ldS5vcmc+CkRhdGU6IFRodSwgMTcgQXByIDIwMjUgMTg6NDI6MzMgKzAyMDAKU3ViamVj dDogW1BBVENIXSBsaWJwYXJ0ZWQ6IERvIG5vdCBkZXRlY3QgZXh0NCB3aXRob3V0IGpvdXJu YWwgYXMgZXh0MgoKZXh0NCBtYXkgaGF2ZSBvdGhlciBpbmNvbXBhdGlibGUgZmVhdHVyZXMg dGhhbiBqb3VybmFsIGFuZCBjYW5ub3QgYmUKbW91bnRlZCBhcyBleHQyIGJ5IGxpbnV4LCBz byBkZXRlY3QgaXQgYXMgZXh0NCBldmVuIHdpdGhvdXQgam91cm5hbAppZiBpdCBoYXMgb3Ro ZXIgaW5jb21wYXRpYmxlIGZlYXR1cmVzLgotLS0KIGxpYnBhcnRlZC9mcy9leHQyL2ludGVy ZmFjZS5jIHwgMzMgKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUg Y2hhbmdlZCwgMTUgaW5zZXJ0aW9ucygrKSwgMTggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvbGlicGFydGVkL2ZzL2V4dDIvaW50ZXJmYWNlLmMgYi9saWJwYXJ0ZWQvZnMvZXh0Mi9p bnRlcmZhY2UuYwppbmRleCA3ZTBiMTk3NC4uNWY2NGFiMzcgMTAwNjQ0Ci0tLSBhL2xpYnBh cnRlZC9mcy9leHQyL2ludGVyZmFjZS5jCisrKyBiL2xpYnBhcnRlZC9mcy9leHQyL2ludGVy ZmFjZS5jCkBAIC01MiwyNCArNTIsMjEgQEAgX2V4dDJfZ2VuZXJpY19wcm9iZSAoUGVkR2Vv bWV0cnkqIGdlb20sIGludCBleHBlY3RfZXh0X3ZlcikKIAkJaW50IGlzX2V4dDMgPSAwOwog CQlpbnQgaXNfZXh0NCA9IDA7CiAKLQkJaXNfZXh0MyA9IChFWFQyX1NVUEVSX0ZFQVRVUkVf Q09NUEFUICgqc2IpCi0JCQkgICAmIEVYVDNfRkVBVFVSRV9DT01QQVRfSEFTX0pPVVJOQUwp ICE9IDA7Ci0JCWlmIChpc19leHQzKSB7Ci0JCQlpc19leHQ0ID0gKChFWFQyX1NVUEVSX0ZF QVRVUkVfUk9fQ09NUEFUICgqc2IpCi0JCQkJICAgICYgRVhUNF9GRUFUVVJFX1JPX0NPTVBB VF9IVUdFX0ZJTEUpCi0JCQkJICAgfHwgKEVYVDJfU1VQRVJfRkVBVFVSRV9ST19DT01QQVQg KCpzYikKLQkJCQkgICAgICAgJiBFWFQ0X0ZFQVRVUkVfUk9fQ09NUEFUX0dEVF9DU1VNKQot CQkJCSAgIHx8IChFWFQyX1NVUEVSX0ZFQVRVUkVfUk9fQ09NUEFUICgqc2IpCi0JCQkJICAg ICAgICYgRVhUNF9GRUFUVVJFX1JPX0NPTVBBVF9ESVJfTkxJTkspCi0JCQkJICAgfHwgKEVY VDJfU1VQRVJfRkVBVFVSRV9JTkNPTVBBVCAoKnNiKQotCQkJCSAgICAgICAmIEVYVDRfRkVB VFVSRV9JTkNPTVBBVF9FWFRFTlRTKQotCQkJCSAgIHx8IChFWFQyX1NVUEVSX0ZFQVRVUkVf SU5DT01QQVQgKCpzYikKLQkJCQkgICAgICAgJiBFWFQ0X0ZFQVRVUkVfSU5DT01QQVRfNjRC SVQpCi0JCQkJICAgfHwgKEVYVDJfU1VQRVJfRkVBVFVSRV9JTkNPTVBBVCAoKnNiKQotCQkJ CSAgICAgICAmIEVYVDRfRkVBVFVSRV9JTkNPTVBBVF9GTEVYX0JHKSk7Ci0JCQlpZiAoaXNf ZXh0NCkKLQkJCQlpc19leHQzID0gMDsKLQkJfQorCQlpc19leHQ0ID0gKChFWFQyX1NVUEVS X0ZFQVRVUkVfUk9fQ09NUEFUICgqc2IpCisJCQkgICAgJiBFWFQ0X0ZFQVRVUkVfUk9fQ09N UEFUX0hVR0VfRklMRSkKKwkJCSAgIHx8IChFWFQyX1NVUEVSX0ZFQVRVUkVfUk9fQ09NUEFU ICgqc2IpCisJCQkgICAgICAgJiBFWFQ0X0ZFQVRVUkVfUk9fQ09NUEFUX0dEVF9DU1VNKQor CQkJICAgfHwgKEVYVDJfU1VQRVJfRkVBVFVSRV9ST19DT01QQVQgKCpzYikKKwkJCSAgICAg ICAmIEVYVDRfRkVBVFVSRV9ST19DT01QQVRfRElSX05MSU5LKQorCQkJICAgfHwgKEVYVDJf U1VQRVJfRkVBVFVSRV9JTkNPTVBBVCAoKnNiKQorCQkJICAgICAgICYgRVhUNF9GRUFUVVJF X0lOQ09NUEFUX0VYVEVOVFMpCisJCQkgICB8fCAoRVhUMl9TVVBFUl9GRUFUVVJFX0lOQ09N UEFUICgqc2IpCisJCQkgICAgICAgJiBFWFQ0X0ZFQVRVUkVfSU5DT01QQVRfNjRCSVQpCisJ CQkgICB8fCAoRVhUMl9TVVBFUl9GRUFUVVJFX0lOQ09NUEFUICgqc2IpCisJCQkgICAgICAg JiBFWFQ0X0ZFQVRVUkVfSU5DT01QQVRfRkxFWF9CRykpOworCQlpZiAoIWlzX2V4dDQpCisJ CQlpc19leHQzID0gKEVYVDJfU1VQRVJfRkVBVFVSRV9DT01QQVQgKCpzYikKKwkJCQkgICAm IEVYVDNfRkVBVFVSRV9DT01QQVRfSEFTX0pPVVJOQUwpICE9IDA7CiAJCWlmIChleHBlY3Rf ZXh0X3ZlciA9PSAyICYmIChpc19leHQzIHx8IGlzX2V4dDQpKQogCQkJcmV0dXJuIE5VTEw7 CiAJCWlmIChleHBlY3RfZXh0X3ZlciA9PSAzICYmICFpc19leHQzKQotLSAKMi4zOS41Cgo= --------------Wk2tTdeuI0L5QDDFH60gWqdN--