|
|
@@ -612,13 +612,12 @@ static int __init populate_rootfs(void)
|
|
|
printk(KERN_INFO "Trying to unpack rootfs image as initramfs...\n");
|
|
|
err = unpack_to_rootfs((char *)initrd_start,
|
|
|
initrd_end - initrd_start);
|
|
|
- if (!err) {
|
|
|
- free_initrd();
|
|
|
+ if (!err)
|
|
|
goto done;
|
|
|
- } else {
|
|
|
- clean_rootfs();
|
|
|
- unpack_to_rootfs(__initramfs_start, __initramfs_size);
|
|
|
- }
|
|
|
+
|
|
|
+ clean_rootfs();
|
|
|
+ unpack_to_rootfs(__initramfs_start, __initramfs_size);
|
|
|
+
|
|
|
printk(KERN_INFO "rootfs image is not initramfs (%s)"
|
|
|
"; looks like an initrd\n", err);
|
|
|
fd = ksys_open("/initrd.image",
|
|
|
@@ -632,7 +631,6 @@ static int __init populate_rootfs(void)
|
|
|
written, initrd_end - initrd_start);
|
|
|
|
|
|
ksys_close(fd);
|
|
|
- free_initrd();
|
|
|
}
|
|
|
done:
|
|
|
/* empty statement */;
|
|
|
@@ -642,9 +640,9 @@ static int __init populate_rootfs(void)
|
|
|
initrd_end - initrd_start);
|
|
|
if (err)
|
|
|
printk(KERN_EMERG "Initramfs unpacking failed: %s\n", err);
|
|
|
- free_initrd();
|
|
|
#endif
|
|
|
}
|
|
|
+ free_initrd();
|
|
|
flush_delayed_fput();
|
|
|
/*
|
|
|
* Try loading default modules from initramfs. This gives
|