[PATCH] Bug in initrd-handling while remounting the root

=^.^= (martin@kfib.org)
Thu, 10 Jul 2003 14:03:15 +0200


At work we've encountered a problem when trying to netboot 2.4.21.
After /linuxrc has been executed and the kernel tries to remount the
root, it panics with the all too well known message "Unable to mount
root fs on ...".

The kernel bugs out in mount_block_root in the file init/do_mounts.c,
to be more precise in the for-loop. What happens is that it tries to
mount the file system as type ext2 (which happens to be first in the
list in our case), but instead of returning -EINVAL it returns -EBUSY,
the loop exits instead of trying the next (correct) fs-type and the
kernel panics.

Here's a patch:

--- linux-2.4.21/init/do_mounts.orig Thu Jul 10 13:44:03 2003
+++ linux-2.4.21/init/do_mounts.c Thu Jul 10 13:46:36 2003
@@ -359,6 +359,7 @@
flags |= MS_RDONLY;
goto retry;
case -EINVAL:
+ case -EBUSY:
continue;
}
/*

--
Martin Persson           martin@kfib.org
http://martin.kfib.org/  http://ss.kfib.org/

"esound is junk. The only thing esd has is a good client API for going boing at approximately the right time. Anything else is beyond it." -- Alan Cox - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/