From 6791a22a9e420278e098f49eee861bdb20d23226 Mon Sep 17 00:00:00 2001 From: James Bottomley Date: Tue, 3 Feb 2004 21:51:43 -0800 Subject: [PATCH] [PATCH] use cramfs as an initrd Now that Al Viro fixed cramfs, it works beautifully as an initrd filesystem. So finally plumb it in. --- init/do_mounts_rd.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/init/do_mounts_rd.c b/init/do_mounts_rd.c index c4074ad08906a..e8b6e2ffc11a8 100644 --- a/init/do_mounts_rd.c +++ b/init/do_mounts_rd.c @@ -4,6 +4,7 @@ #include #include #include +#include #include #include @@ -41,6 +42,7 @@ static int __init crd_load(int in_fd, int out_fd); * minix * ext2 * romfs + * cramfs * gzip */ static int __init @@ -50,6 +52,7 @@ identify_ramdisk_image(int fd, int start_block) struct minix_super_block *minixsb; struct ext2_super_block *ext2sb; struct romfs_super_block *romfsb; + struct cramfs_super *cramfsb; int nblocks = -1; unsigned char *buf; @@ -60,6 +63,7 @@ identify_ramdisk_image(int fd, int start_block) minixsb = (struct minix_super_block *) buf; ext2sb = (struct ext2_super_block *) buf; romfsb = (struct romfs_super_block *) buf; + cramfsb = (struct cramfs_super *) buf; memset(buf, 0xe5, size); /* @@ -89,6 +93,14 @@ identify_ramdisk_image(int fd, int start_block) goto done; } + if (cramfsb->magic == CRAMFS_MAGIC) { + printk(KERN_NOTICE + "RAMDISK: cramfs filesystem found at block %d\n", + start_block); + nblocks = (cramfsb->size + BLOCK_SIZE - 1) >> BLOCK_SIZE_BITS; + goto done; + } + /* * Read block 1 to test for minix and ext2 superblock */ -- 2.53.0