From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with archive (Exim 4.43) id 1KD9fQ-0006dv-0n for mharc-grub-devel@gnu.org; Sun, 29 Jun 2008 23:03:00 -0400 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1KD9fN-0006ap-HI for grub-devel@gnu.org; Sun, 29 Jun 2008 23:02:57 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1KD9fL-0006ZB-UX for grub-devel@gnu.org; Sun, 29 Jun 2008 23:02:57 -0400 Received: from [199.232.76.173] (port=50784 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1KD9fL-0006Yx-HH for grub-devel@gnu.org; Sun, 29 Jun 2008 23:02:55 -0400 Received: from ik-out-1112.google.com ([66.249.90.177]:19098) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1KD9fL-00086K-0w for grub-devel@gnu.org; Sun, 29 Jun 2008 23:02:55 -0400 Received: by ik-out-1112.google.com with SMTP id c21so570130ika.2 for ; Sun, 29 Jun 2008 20:02:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:subject:from:to:in-reply-to :references:content-type:date:message-id:mime-version:x-mailer; bh=zJfbAuTLiA8fYe+mXL8qkkFSQFXc/bexyN17me/AnDI=; b=mdiBkzoNv9R9+5gPc3/OXkuM87VuaFkVr14HByeO6abo/kFWREwPZw+W1ddoUEFmae G5861RhFUjlYAFpgDGXyN8miiu9lQ1+w7/GywEltmqWfqKWkA1V4iyxsSk2ObQa4cWzx oqt3f0n6PPWk/bZmklj1sB70JixInZejPOcGw= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=subject:from:to:in-reply-to:references:content-type:date:message-id :mime-version:x-mailer; b=aEj/R4Gtpp+m1pyeTBfIU0AXs+CT+CMvyoNFjSnBB8KAeQTJ0elc93hQsKw+nhcYso gwcBo45nIuOZ4ERlURFVy1AbPme6Co8GfnoUFSXzm5cWrQMFlzUCsgKlfreoRyDwsXwQ lFPJ+LFf4AH6BLaSqXuV4bVieaWdP0mdTwp7s= Received: by 10.210.59.14 with SMTP id h14mr3663523eba.189.1214794973869; Sun, 29 Jun 2008 20:02:53 -0700 (PDT) Received: from ?192.168.1.100? ( [213.37.137.93]) by mx.google.com with ESMTPS id y34sm5825605iky.10.2008.06.29.20.02.50 (version=SSLv3 cipher=RC4-MD5); Sun, 29 Jun 2008 20:02:51 -0700 (PDT) From: Javier =?ISO-8859-1?Q?Mart=EDn?= To: The development of GRUB 2 In-Reply-To: <20080629211957.GD24784@thorin> References: <889404A5CBB14C15B464EDBB1AE338A8@fz> <1214765178.6942.2.camel@localhost> <1214769230.6942.11.camel@localhost> <20080629211957.GD24784@thorin> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-CggPQh1/hctBsT7YodgD" Date: Mon, 30 Jun 2008 05:02:50 +0200 Message-Id: <1214794971.9353.32.camel@localhost> Mime-Version: 1.0 X-Mailer: Evolution 2.22.2 X-detected-kernel: by monty-python.gnu.org: Linux 2.6 (newer, 2) Subject: Re: grub-probe detects ext4 wronly as ext2 X-BeenThere: grub-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: The development of GRUB 2 List-Id: The development of GRUB 2 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 30 Jun 2008 03:02:57 -0000 --=-CggPQh1/hctBsT7YodgD Content-Type: multipart/mixed; boundary="=-HLGBcNpydiZe3eOuryeG" --=-HLGBcNpydiZe3eOuryeG Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable El dom, 29-06-2008 a las 23:19 +0200, Robert Millan escribi=C3=B3: > On Sun, Jun 29, 2008 at 09:53:50PM +0200, Javier Mart=C3=ADn wrote: > > Ext4 is as of today in development and unstable; in fact, the FS name i= n > > Linux is "ext4dev", but I _think_ the on-disk format is already frozen > > and thus a readonly driver can be written. I'm not saying that we shoul= d > > delay the implementation of such a driver, just the we first need to > > address the potentially fatal problem of an ext4 FS mounted as ext3/2. > > No distro enables ext4 by default. >=20 > Yep. update-grub heavily relies on grub-probe to figure out if a filesys= tem > will be accessible, and therefore whether to enable optional features. >=20 Here is the patch I was talking about, one step farther than I had first envisioned, i.e. not just about ext4 but an (solid?) implementation of "xenophobia" in the filesystem driver. This code checks the superblock backwards-incompatible features bitfield against a predefined set of features that we do support, and refuses to mount the filesystem if there are any that we don't. In particular, this makes the driver reject ext4 filesystems with the "extents" option enabled. As I don't know what INCOMPAT_* features are implemented, I've added the one I'm sure we do support because it is used in the code: "filetype". However, someone with insight in the ext2 driver should take a look at the patch and add all INCOMPAT_* features that we support to the new define created to that effect: EXT2_DRIVER_SUPPORTED_INCOMPAT. Just OR the new flags with the one in there. Failure to do so might cause regressions if this patch is committed (i.e. FS that mounted fine before will now refuse to do so), but will ensure that we only try to read what we can. I've copied the EXTn_FEATURE_* #defines from the Linux kernel headers, but only two are actually used (filetype and has_journal, which was already there, presumably to detect ext3 filesystems) - the rest are there for completion, but can be removed if you deem it better, though I'd suggest keeping at least the EXTn_FEATURE_INCOMPAT_* macros. This patch has been tested on a qemu virtual machine, with two ext2 partitions that started identical. I mounted one of them as ext4dev with the extents option and copied a new file to it, thus enabling the "extents" bit in the superblock. Without the patch, GRUB would happily read both partitions as ext2 (I didn't try to read the new file, but most probably that would have caused some havoc). With the patch, the ext4 partition is shown as "unknown filesystem". A good changelog entry might be "fs/ext2.c: ext2 driver will now reject filesystems with unknown incompatible features". This patch detects only "incompatible" features, so ext3 devices with internal journal should continue to work as they did. Phew, that was all (I hope) Cheers! Habbit --=-HLGBcNpydiZe3eOuryeG Content-Disposition: attachment; filename=ext4_unrecognized.diff Content-Type: text/x-patch; name=ext4_unrecognized.diff; charset=utf-8 Content-Transfer-Encoding: base64 SW5kZXg6IGZzL2V4dDIuYw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KUkNTIGZpbGU6IC9zb3VyY2VzL2dydWIvZ3J1 YjIvZnMvZXh0Mi5jLHYNCnJldHJpZXZpbmcgcmV2aXNpb24gMS4yNg0KZGlmZiAtdSAtcjEuMjYg ZXh0Mi5jDQotLS0gZnMvZXh0Mi5jCTE2IEp1biAyMDA4IDE5OjAyOjA3IC0wMDAwCTEuMjYNCisr KyBmcy9leHQyLmMJMzAgSnVuIDIwMDggMDI6MzY6MTMgLTAwMDANCkBAIC03MSw3ICs3MSwzMyBA QA0KICAgICAgICAgID8gRVhUMl9HT09EX09MRF9JTk9ERV9TSVpFIFwNCiAgICAgICAgICA6IGdy dWJfbGVfdG9fY3B1MTYgKGRhdGEtPnNibG9jay5pbm9kZV9zaXplKSkNCiANCi0jZGVmaW5lIEVY VDNfRkVBVFVSRV9DT01QQVRfSEFTX0pPVVJOQUwJMHgwMDA0DQorLyogU3VwZXJibG9jayBmaWxl c3lzdGVtIGZlYXR1cmUgZmxhZ3MgKFJXIGNvbXBhdGlibGUpICovDQorI2RlZmluZSBFWFQyX0ZF QVRVUkVfQ09NUEFUX0RJUl9QUkVBTExPQwkweDAwMDENCisjZGVmaW5lIEVYVDJfRkVBVFVSRV9D T01QQVRfSU1BR0lDX0lOT0RFUwkweDAwMDINCisjZGVmaW5lIEVYVDNfRkVBVFVSRV9DT01QQVRf SEFTX0pPVVJOQUwJCTB4MDAwNA0KKyNkZWZpbmUgRVhUMl9GRUFUVVJFX0NPTVBBVF9FWFRfQVRU UgkJMHgwMDA4DQorI2RlZmluZSBFWFQyX0ZFQVRVUkVfQ09NUEFUX1JFU0laRV9JTk9ERQkweDAw MTANCisjZGVmaW5lIEVYVDJfRkVBVFVSRV9DT01QQVRfRElSX0lOREVYCQkweDAwMjANCisvKiBT dXBlcmJsb2NrIGZpbGVzeXN0ZW0gZmVhdHVyZSBmbGFncyAoUk8gY29tcGF0aWJsZSkgKi8NCisj ZGVmaW5lIEVYVDJfRkVBVFVSRV9ST19DT01QQVRfU1BBUlNFX1NVUEVSCTB4MDAwMQ0KKyNkZWZp bmUgRVhUMl9GRUFUVVJFX1JPX0NPTVBBVF9MQVJHRV9GSUxFCTB4MDAwMg0KKyNkZWZpbmUgRVhU Ml9GRUFUVVJFX1JPX0NPTVBBVF9CVFJFRV9ESVIJMHgwMDA0DQorI2RlZmluZSBFWFQ0X0ZFQVRV UkVfUk9fQ09NUEFUX0dEVF9DU1VNCQkweDAwMTANCisjZGVmaW5lIEVYVDRfRkVBVFVSRV9ST19D T01QQVRfRElSX05MSU5LCTB4MDAyMA0KKyNkZWZpbmUgRVhUNF9GRUFUVVJFX1JPX0NPTVBBVF9F WFRSQV9JU0laRQkweDAwNDANCisvKiBTdXBlcmJsb2NrIGZpbGVzeXN0ZW0gZmVhdHVyZSBmbGFn cyAoYmFjay1pbmNvbXBhdGlibGUpICovDQorI2RlZmluZSBFWFQyX0ZFQVRVUkVfSU5DT01QQVRf Q09NUFJFU1NJT04JMHgwMDAxDQorI2RlZmluZSBFWFQyX0ZFQVRVUkVfSU5DT01QQVRfRklMRVRZ UEUJCTB4MDAwMg0KKyNkZWZpbmUgRVhUM19GRUFUVVJFX0lOQ09NUEFUX1JFQ09WRVIJCTB4MDAw NCAvKiBOZWVkcyByZWNvdmVyeSAqLw0KKyNkZWZpbmUgRVhUM19GRUFUVVJFX0lOQ09NUEFUX0pP VVJOQUxfREVWCTB4MDAwOCAvKiBKb3VybmFsIGRldmljZSAqLw0KKyNkZWZpbmUgRVhUMl9GRUFU VVJFX0lOQ09NUEFUX01FVEFfQkcJCTB4MDAxMA0KKyNkZWZpbmUgRVhUNF9GRUFUVVJFX0lOQ09N UEFUX0VYVEVOVFMJCTB4MDA0MCAvKiBleHRlbnRzIHN1cHBvcnQgKi8NCisjZGVmaW5lIEVYVDRf RkVBVFVSRV9JTkNPTVBBVF82NEJJVAkJMHgwMDgwDQorI2RlZmluZSBFWFQ0X0ZFQVRVUkVfSU5D T01QQVRfRkxFWF9CRwkJMHgwMjAwDQorDQorLyogVGhlIHNldCBvZiBiYWNrLWluY29tcGF0aWJs ZSBmZWF0dXJlcyB0aGlzIGRyaXZlciBET0VTIHN1cHBvcnQuIEFkZCAoT1IpDQorICogZmxhZ3Mg aGVyZSBhcyB0aGUgcmVsYXRlZCBmZWF0dXJlcyBhcmUgaW1wbGVtZW50ZWQgaW50byB0aGUgZHJp dmVyICovDQorI2RlZmluZSBFWFQyX0RSSVZFUl9TVVBQT1JURURfSU5DT01QQVQgKCBFWFQyX0ZF QVRVUkVfSU5DT01QQVRfRklMRVRZUEUgKQ0KIA0KICNkZWZpbmUgRVhUM19KT1VSTkFMX01BR0lD X05VTUJFUgkweGMwM2IzOTk4VQ0KIA0KQEAgLTM5NCw2ICs0MjAsMTEgQEANCiAgIGlmIChncnVi X2xlX3RvX2NwdTE2IChkYXRhLT5zYmxvY2subWFnaWMpICE9IEVYVDJfTUFHSUMpDQogICAgIGdv dG8gZmFpbDsNCiAgIA0KKyAgLyogQ2hlY2sgdGhlIEZTIGRvZXNuJ3QgaGF2ZSBmZWF0dXJlIGJp dHMgZW5hYmxlZCB0aGF0IHdlIGRvbid0IHN1cHBvcnQgKi8NCisgIGlmIChncnViX2xlX3RvX2Nw dTMyIChkYXRhLT5zYmxvY2suZmVhdHVyZV9pbmNvbXBhdCkNCisgICAgICAmIH5FWFQyX0RSSVZF Ul9TVVBQT1JURURfSU5DT01QQVQpDQorICAgIGdvdG8gZmFpbDsNCisgIA0KICAgZGF0YS0+ZGlz ayA9IGRpc2s7DQogDQogICBkYXRhLT5kaXJvcGVuLmRhdGEgPSBkYXRhOw0KQEAgLTQwOSw3ICs0 NDAsOCBAQA0KICAgcmV0dXJuIGRhdGE7DQogDQogIGZhaWw6DQotICBncnViX2Vycm9yIChHUlVC X0VSUl9CQURfRlMsICJub3QgYW4gZXh0MiBmaWxlc3lzdGVtIik7DQorICBncnViX2Vycm9yIChH UlVCX0VSUl9CQURfRlMsICJub3QgYW4gZXh0MiBmaWxlc3lzdGVtLCBvciBpbmNvbXBhdGlibGUi DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJmZWF0dXJlcyBlbmFibGVkIChleHRl bnRzLCBldGMuKSIpOw0KICAgZ3J1Yl9mcmVlIChkYXRhKTsNCiAgIHJldHVybiAwOw0KIH0NCg== --=-HLGBcNpydiZe3eOuryeG-- --=-CggPQh1/hctBsT7YodgD Content-Type: application/pgp-signature; name=signature.asc Content-Description: Esta parte del mensaje =?ISO-8859-1?Q?est=E1?= firmada digitalmente -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.6 (GNU/Linux) iQIVAwUASGhM2qSl+Fbdeo72AQKFsRAAkjLyCk6p72CUnFmussSecWcbgB317FeF /WFLPsG9Z09M5ghZGMylHrPUezAnJ6SW+sNJPm1cGi4svdqryG4gOlmQvN+MpZ4j EcCHRkqZvWX6bTEZX/upfuZEniCjaR22pPuaCt72mwkiYkblynQbAhJHdxK0AuFl QeLCMbxz57wDrAJDeqx2RM8PwptW3gnroRxcxkp3o2sjZHMRPyUn6PRqma/DWqEt sZjfEjHBDFEOXa5lTtGMYJ/k8JlxCsDgiMNRR1ggeqn29WP1IetdWetiZ/u/3vMf /5oosJV6ExvY/FftdlYJSTNwnYQSpV0M4twhjqCldi+xruFUq+cB3MNlLLv/vWEc HedPaVJw7CJdpgAJ3NTIdU3jbE5rPu3oeud8spr003Dkw5oLORRN8ZLA5BgyrS6T buX6CbiF1EyynLmeqzVLXE90gsN8ifcuPnHfICwkyDv1MqkltxIVszztrgx9I7Gf V8v/ZOdV5KTgqcsIGXPdHkJD9OnwHAIaSDMB+FwXOC5SnsKxrqtO+KUBcNpMJDNp DRgTTXi/zYdq5znioZbLYPaJW22TGh+/2T8VlylrjmhXBXLgsMY0P7GHW2Y6A+pB 2RfdIeouYVBBfJtD06b5JFvUr4xf7BlSc5BmfHwenORKxDDv/UNnDcyQjX93jnxE hNv3rDX3foY= =30J6 -----END PGP SIGNATURE----- --=-CggPQh1/hctBsT7YodgD--