[BUG] initrd broken in 2.3.51->99pre3

From: Jeff Noxon (jeff@planetfall.com)
Date: Fri Mar 31 2000 - 14:10:29 EST


I need to get an initial ramdisk working in a recent 2.3.5x or later
kernel, but they're borken. :) I don't know when the bug first appeared.

In rd.c (rd_open), the following code causes an oops and hangs the boot:

        /*
         * Immunize device against invalidate_buffers() and prune_icache().
         */
        if (rd_inode[DEVICE_NR(inode->i_rdev)] == NULL) {
                if((rd_inode[DEVICE_NR(inode->i_rdev)] = igrab(inode)) != NULL)
                        atomic_inc(&rd_inode[DEVICE_NR(inode->i_rdev)]->i_bdev->bd_openers);
        }

In the third line, i_bdev is null. Commenting out the code does not fix
the problem. (Instead I get a kernel panic that VFS cannot mount root
on 01:00.) The kernel never seems to identify that an initrd exists in
the first place. I'm using GRUB 0.5.94 to load a cramdisk. It works
fine with 2.2.14. At the very least, 2.3.51 and onward are broken.

Thanks for any help!

Regards,

Jeff

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Fri Mar 31 2000 - 21:00:29 EST