aboutsummaryrefslogtreecommitdiffstats
path: root/init/initramfs.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@woody.osdl.org>2006-12-11 15:12:04 -0500
committerLinus Torvalds <torvalds@woody.osdl.org>2006-12-11 15:12:04 -0500
commit8d610dd52dd1da696e199e4b4545f33a2a5de5c6 (patch)
tree8b2eee4dac34ff5f1374225ccba3fedb8432b579 /init/initramfs.c
parent8993780a6e44fb4e7ed34e33458506a775356c6e (diff)
Make sure we populate the initroot filesystem late enough
We should not initialize rootfs before all the core initializers have run. So do it as a separate stage just before starting the regular driver initializers. Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'init/initramfs.c')
-rw-r--r--init/initramfs.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/init/initramfs.c b/init/initramfs.c
index 85f04037ade1..4fa0f7977de1 100644
--- a/init/initramfs.c
+++ b/init/initramfs.c
@@ -526,7 +526,7 @@ static void __init free_initrd(void)
526 526
527#endif 527#endif
528 528
529void __init populate_rootfs(void) 529static int __init populate_rootfs(void)
530{ 530{
531 char *err = unpack_to_rootfs(__initramfs_start, 531 char *err = unpack_to_rootfs(__initramfs_start,
532 __initramfs_end - __initramfs_start, 0); 532 __initramfs_end - __initramfs_start, 0);
@@ -544,7 +544,7 @@ void __init populate_rootfs(void)
544 unpack_to_rootfs((char *)initrd_start, 544 unpack_to_rootfs((char *)initrd_start,
545 initrd_end - initrd_start, 0); 545 initrd_end - initrd_start, 0);
546 free_initrd(); 546 free_initrd();
547 return; 547 return 0;
548 } 548 }
549 printk("it isn't (%s); looks like an initrd\n", err); 549 printk("it isn't (%s); looks like an initrd\n", err);
550 fd = sys_open("/initrd.image", O_WRONLY|O_CREAT, 0700); 550 fd = sys_open("/initrd.image", O_WRONLY|O_CREAT, 0700);
@@ -565,4 +565,6 @@ void __init populate_rootfs(void)
565#endif 565#endif
566 } 566 }
567#endif 567#endif
568 return 0;
568} 569}
570rootfs_initcall(populate_rootfs);