Indeed - I forgot to run fs_may_mount, which removes stale inodes as
a side-effect. Here's a patch to fix it (for pre-2.0.14):
--- linux/fs/super.c.orig Fri Jun 7 18:08:12 1996
+++ linux/fs/super.c Fri Jun 7 18:12:18 1996
@@ -1040,6 +1040,10 @@
old_root = current->fs->root;
old_pwd = current->fs->pwd;
old_root_dev = ROOT_DEV;
+ if (!fs_may_mount(new_root_dev)) {
+ printk(KERN_CRIT "New root is busy. Staying in initrd.\n");
+ return -EBUSY;
+ }
ROOT_DEV = new_root_dev;
do_mount_root();
old_fs = get_fs();
- Werner
-- _________________________________________________________________________ / Werner Almesberger, DI-LRC,EPFL,CH werner.almesberger@lrc.di.epfl.ch / /_IN_R_133__Tel_+41_21_693_6621__Fax_+41_21_693_6610_____________________/