summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEric Sandeen <sandeen@fedoraproject.org>2008-01-23 21:41:48 +0000
committerEric Sandeen <sandeen@fedoraproject.org>2008-01-23 21:41:48 +0000
commit9a96d116f94fa5f668e917b5590d1c08e1edaaef (patch)
tree197605ba343ee7804476406bdc28938b98d59343
parentdba7ad2f7fc14c26b50fbbe3c5a0ce34545424a3 (diff)
downloade2fsprogs-9a96d116f94fa5f668e917b5590d1c08e1edaaef.tar.gz
e2fsprogs-9a96d116f94fa5f668e917b5590d1c08e1edaaef.tar.xz
e2fsprogs-9a96d116f94fa5f668e917b5590d1c08e1edaaef.zip
ugh missed one patch somehowe2fsprogs-1_40_4-5_fc9
-rw-r--r--e2fsprogs-1.40.4-blkid-ext4dev.patch82
1 files changed, 82 insertions, 0 deletions
diff --git a/e2fsprogs-1.40.4-blkid-ext4dev.patch b/e2fsprogs-1.40.4-blkid-ext4dev.patch
new file mode 100644
index 0000000..63fa6a6
--- /dev/null
+++ b/e2fsprogs-1.40.4-blkid-ext4dev.patch
@@ -0,0 +1,82 @@
+Index: e2fsprogs-1.40.4/lib/blkid/probe.c
+===================================================================
+--- e2fsprogs-1.40.4.orig/lib/blkid/probe.c
++++ e2fsprogs-1.40.4/lib/blkid/probe.c
+@@ -148,6 +148,38 @@ static void get_ext2_info(blkid_dev dev,
+ set_uuid(dev, es->s_uuid, 0);
+ }
+
++static int probe_ext4(struct blkid_probe *probe,
++ struct blkid_magic *id __BLKID_ATTR((unused)),
++ unsigned char *buf)
++{
++ struct ext2_super_block *es;
++ es = (struct ext2_super_block *)buf;
++
++ /* Distinguish between jbd and ext2/3/4 fs */
++ if (blkid_le32(es->s_feature_incompat) &
++ EXT3_FEATURE_INCOMPAT_JOURNAL_DEV)
++ return -BLKID_ERR_PARAM;
++
++ /* Distinguish between ext3/4 and ext2 */
++ if (!(blkid_le32(es->s_feature_compat) &
++ EXT3_FEATURE_COMPAT_HAS_JOURNAL))
++ return -BLKID_ERR_PARAM;
++
++ /* Distinguish between ext4 and ext3 */
++ if (!(blkid_le32(es->s_feature_ro_compat) &
++ EXT4_FEATURES_RO_COMPAT) &&
++ !(blkid_le32(es->s_feature_incompat) &
++ EXT4_FEATURES_INCOMPAT))
++ return -BLKID_ERR_PARAM;
++
++ get_ext2_info(probe->dev, buf);
++
++ if ((es->s_feature_compat & EXT3_FEATURE_COMPAT_HAS_JOURNAL) &&
++ !uuid_is_null(es->s_journal_uuid))
++ set_uuid(probe->dev, es->s_journal_uuid, "EXT_JOURNAL");
++
++ return 0;
++}
+ static int probe_ext3(struct blkid_probe *probe,
+ struct blkid_magic *id __BLKID_ATTR((unused)),
+ unsigned char *buf)
+@@ -833,6 +865,7 @@ static struct blkid_magic type_array[] =
+ { "oracleasm", 0, 32, 8, "ORCLDISK", probe_oracleasm },
+ { "ntfs", 0, 3, 8, "NTFS ", probe_ntfs },
+ { "jbd", 1, 0x38, 2, "\123\357", probe_jbd },
++ { "ext4dev", 1, 0x38, 2, "\123\357", probe_ext4 },
+ { "ext3", 1, 0x38, 2, "\123\357", probe_ext3 },
+ { "ext2", 1, 0x38, 2, "\123\357", probe_ext2 },
+ { "reiserfs", 8, 0x34, 8, "ReIsErFs", probe_reiserfs },
+Index: e2fsprogs-1.40.4/lib/blkid/probe.h
+===================================================================
+--- e2fsprogs-1.40.4.orig/lib/blkid/probe.h
++++ e2fsprogs-1.40.4/lib/blkid/probe.h
+@@ -88,6 +88,26 @@ struct ext2_super_block {
+ #define EXT3_FEATURE_INCOMPAT_RECOVER 0x00000004
+ #define EXT3_FEATURE_INCOMPAT_JOURNAL_DEV 0x00000008
+
++#define EXT4_FEATURE_RO_COMPAT_HUGE_FILE 0x0008
++#define EXT4_FEATURE_RO_COMPAT_GDT_CSUM 0x0010
++#define EXT4_FEATURE_RO_COMPAT_DIR_NLINK 0x0020
++#define EXT4_FEATURE_RO_COMPAT_EXTRA_ISIZE 0x0040
++
++#define EXT4_FEATURE_INCOMPAT_EXTENTS 0x0040 /* extents support */
++#define EXT4_FEATURE_INCOMPAT_64BIT 0x0080
++#define EXT4_FEATURE_INCOMPAT_MMP 0x0100
++#define EXT4_FEATURE_INCOMPAT_FLEX_BG 0x0200
++
++#define EXT4_FEATURES_RO_COMPAT (EXT4_FEATURE_RO_COMPAT_HUGE_FILE| \
++ EXT4_FEATURE_RO_COMPAT_GDT_CSUM| \
++ EXT4_FEATURE_RO_COMPAT_DIR_NLINK| \
++ EXT4_FEATURE_RO_COMPAT_EXTRA_ISIZE)
++
++#define EXT4_FEATURES_INCOMPAT (EXT4_FEATURE_INCOMPAT_EXTENTS| \
++ EXT4_FEATURE_INCOMPAT_64BIT| \
++ EXT4_FEATURE_INCOMPAT_MMP| \
++ EXT4_FEATURE_INCOMPAT_FLEX_BG)
++
+ struct xfs_super_block {
+ unsigned char xs_magic[4];
+ __u32 xs_blocksize;