]> git.ipfire.org Git - people/ms/ipfire-2.x.git/commitdiff
udev: fix vol_id ext4 detection if it has no journal.
authorArne Fitzenreiter <arne_f@ipfire.org>
Tue, 26 Jun 2012 13:09:38 +0000 (15:09 +0200)
committerArne Fitzenreiter <arne_f@ipfire.org>
Tue, 26 Jun 2012 13:09:38 +0000 (15:09 +0200)
lfs/udev
src/patches/udev-125-ext4_wo_journal.patch [new file with mode: 0644]

index c7cba71387079ebdad7fd58148a20283dbc8aeff..decdce8bbb5ab7df6c557ef5546b26002199988a 100644 (file)
--- a/lfs/udev
+++ b/lfs/udev
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2005-2010  IPFire Team  <info@ipfire.org>                     #
+# Copyright (C) 2007-2012  IPFire Team  <info@ipfire.org>                     #
 #                                                                             #
 # This program is free software: you can redistribute it and/or modify        #
 # it under the terms of the GNU General Public License as published by        #
@@ -77,33 +77,7 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
        @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
        cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/udev-125-netif_rename.patch
-ifeq "$(LFS_PASS)" "install"
-       cd $(DIR_APP) && make DESTDIR=/install/initrd sbindir=/sbin udevdir=/dev
-       cd $(DIR_APP) && make DESTDIR=/install/initrd sbindir=/sbin udevdir=/dev install
-       rm -f /install/initrd/sbin/udev* /install/initrd/usr/sbin/udev* /install/initrd/usr/bin/udev*
-       cd $(DIR_APP) && install udevadm udevd /install/initrd/sbin
-       cd $(DIR_APP) && make $(MAKETUNING) EXTRAS="extras/ata_id extras/cdrom_id extras/edd_id \
-                                       extras/firmware extras/floppy extras/path_id \
-                                       extras/scsi_id extras/usb_id extras/volume_id"
-       cd $(DIR_APP) && make DESTDIR=/install/initrd EXTRAS="extras/ata_id extras/cdrom_id extras/edd_id \
-                                       extras/firmware extras/floppy extras/path_id \
-                                       extras/scsi_id extras/usb_id extras/volume_id" install
-       cd /install/initrd/usr/share && rm -rf man
-       -mkdir -pv /install/initrd/dev
-       cd /install/initrd/dev && rm -f console
-       cd /install/initrd/dev && mknod -m 0600 console c 5 1
-       cd /install/initrd/dev && rm -f null
-       cd /install/initrd/dev && mknod -m 0777 null c 1 3
-       cd /install/initrd/dev && rm -f tty*
-       cd /install/initrd/dev && mknod -m 0600 tty1 c 4 1
-       cd /install/initrd/dev && mknod -m 0600 tty2 c 4 2
-       cd /install/initrd/dev && mknod -m 0600 tty3 c 4 3
-       cd /install/initrd/dev && mknod -m 0600 tty4 c 4 4
-       cd /install/initrd/dev && mknod -m 0600 tty5 c 4 5
-       cd /install/initrd/dev && mknod -m 0600 tty6 c 4 6
-       cp -f /etc/udev/rules.d/55-scsi-cdrom.rules /install/initrd/etc/udev/rules.d/55-scsi-cdrom.rules
-
-else
+       cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/udev-125-ext4_wo_journal.patch
        rm -rf /lib/udev/devices
        cd $(DIR_APP) && tar jxf $(DIR_DL)/udev-config-6.2.tar.bz2
        cd $(DIR_APP) && patch -Np0 -i $(DIR_SRC)/src/patches/udev-config-6.2_persistent-storage-fix.patch
@@ -131,6 +105,5 @@ else
        chmod 755 /etc/udev/dvb.sh
        touch /etc/udev/rules.d/30-persistent-network.rules
        cp -vf $(DIR_SRC)/config/udev/blacklist /etc/modprobe.d/blacklist
-endif
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
diff --git a/src/patches/udev-125-ext4_wo_journal.patch b/src/patches/udev-125-ext4_wo_journal.patch
new file mode 100644 (file)
index 0000000..77072ce
--- /dev/null
@@ -0,0 +1,50 @@
+diff -Naur udev-125.org/extras/volume_id/lib/ext.c udev-125/extras/volume_id/lib/ext.c
+--- udev-125.org/extras/volume_id/lib/ext.c    2008-07-18 16:26:55.000000000 +0200
++++ udev-125/extras/volume_id/lib/ext.c        2012-06-25 00:52:40.976563010 +0200
+@@ -160,32 +160,31 @@
+               goto found;
+       }
+-      /* has journal */
+-      if ((feature_compat & EXT3_FEATURE_COMPAT_HAS_JOURNAL) != 0) {
+-              /* "use on development code" is ext4dev */
+-              if ((flags & EXT2_FLAGS_TEST_FILESYS) != 0) {
+-                      id->type = "ext4dev";
+-                      goto found;
+-              }
++      /* "use on development code" is ext4dev */
++      if ((flags & EXT2_FLAGS_TEST_FILESYS) != 0) {
++              id->type = "ext4dev";
++              goto found;
++      }
+-              /* incompatible ext3 features is ext4 */
+-              if ((feature_ro_compat & EXT3_FEATURE_RO_COMPAT_UNSUPPORTED) != 0 ||
+-                  (feature_incompat & EXT3_FEATURE_INCOMPAT_UNSUPPORTED) != 0) {
+-                      id->type = "ext4";
+-                      goto found;
+-              }
++      /* incompatible ext3 features is ext4 */
++      if ((feature_ro_compat & EXT3_FEATURE_RO_COMPAT_UNSUPPORTED) != 0 ||
++          (feature_incompat & EXT3_FEATURE_INCOMPAT_UNSUPPORTED) != 0) {
++              id->type = "ext4";
++              goto found;
++      }
++      /* has journal */
++      if ((feature_compat & EXT3_FEATURE_COMPAT_HAS_JOURNAL) != 0) {
+               id->type = "ext3";
+               goto found;
+       } else {
+-              /* no incompatible ext2 feature is ext2 */
++      /* no incompatible ext2 feature is ext2 */
+               if ((feature_ro_compat & EXT2_FEATURE_RO_COMPAT_UNSUPPORTED) == 0 &&
+                   (feature_incompat & EXT2_FEATURE_INCOMPAT_UNSUPPORTED) == 0) {
+                       id->type = "ext2";
+                       goto found;
+               }
+       }
+-
+       return -1;
+ found: