diff options
author | Michael Lauer <mickey@vanille-media.de> | 2008-07-22 12:50:02 +0000 |
---|---|---|
committer | Michael Lauer <mickey@vanille-media.de> | 2008-07-22 12:50:02 +0000 |
commit | be5582e5cd17e6ac56d96c2a9fa1bf7334e4cfca (patch) | |
tree | 9b2e0e2d964a1856bde2394f24de4bab5839c77b /packages/linux/linux-openmoko-devel/0002-squashfs-initrd.patch | |
parent | c1fede3c3457ec82550e3ac0e106953db841e2f0 (diff) | |
parent | b8a968c98e023d5d5f0b6830288853b051fb20cc (diff) |
merge of '05c935a7653c0d015e410ba1c92bd8909528d2d0'
and '66afa730ae13c8e2f76b43a319e6c5be9e46c981'
Diffstat (limited to 'packages/linux/linux-openmoko-devel/0002-squashfs-initrd.patch')
-rw-r--r-- | packages/linux/linux-openmoko-devel/0002-squashfs-initrd.patch | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/packages/linux/linux-openmoko-devel/0002-squashfs-initrd.patch b/packages/linux/linux-openmoko-devel/0002-squashfs-initrd.patch new file mode 100644 index 0000000000..cd2c678058 --- /dev/null +++ b/packages/linux/linux-openmoko-devel/0002-squashfs-initrd.patch @@ -0,0 +1,55 @@ +diff -urN linux-2.6.23/init/do_mounts_rd.c linux-2.6.23.sqlzma-ng/init/do_mounts_rd.c +--- linux-2.6.23/init/do_mounts_rd.c 2007-10-09 16:31:38.000000000 -0400 ++++ linux-2.6.23.sqlzma-ng/init/do_mounts_rd.c 2007-11-13 18:58:41.000000000 -0500 +@@ -5,6 +5,7 @@ + #include <linux/ext2_fs.h> + #include <linux/romfs_fs.h> + #include <linux/cramfs_fs.h> ++#include <linux/squashfs_fs.h> + #include <linux/initrd.h> + #include <linux/string.h> + +@@ -39,6 +40,7 @@ + * numbers could not be found. + * + * We currently check for the following magic numbers: ++ * squashfs + * minix + * ext2 + * romfs +@@ -53,6 +55,7 @@ + struct ext2_super_block *ext2sb; + struct romfs_super_block *romfsb; + struct cramfs_super *cramfsb; ++ struct squashfs_super_block *squashfsb; + int nblocks = -1; + unsigned char *buf; + +@@ -64,6 +67,7 @@ + ext2sb = (struct ext2_super_block *) buf; + romfsb = (struct romfs_super_block *) buf; + cramfsb = (struct cramfs_super *) buf; ++ squashfsb = (struct squashfs_super_block *) buf; + memset(buf, 0xe5, size); + + /* +@@ -101,6 +105,18 @@ + goto done; + } + ++ /* squashfs is at block zero too */ ++ if (squashfsb->s_magic == SQUASHFS_MAGIC) { ++ printk(KERN_NOTICE ++ "RAMDISK: squashfs filesystem found at block %d\n", ++ start_block); ++ if (squashfsb->s_major < 3) ++ nblocks = (squashfsb->bytes_used_2+BLOCK_SIZE-1)>>BLOCK_SIZE_BITS; ++ else ++ nblocks = (squashfsb->bytes_used+BLOCK_SIZE-1)>>BLOCK_SIZE_BITS; ++ goto done; ++ } ++ + /* + * Read block 1 to test for minix and ext2 superblock + */ + |