revert "initramfs: cleanup incomplete rootfs"
Revertff1522bb7d
("initramfs: cleanup incomplete rootfs"). Andy reports : This breaks my setup where I have U-boot provided more size of initramfs : than needed. This allows a bit of flexibility to increase or decrease : initramfs compressed image without taking care of bootloader. The proper : solution is to do this if we sure that we didn't get enough memory, : otherwise I can't consider the error fatal to clean up rootfs. Fixes:ff1522bb7d
("initramfs: cleanup incomplete rootfs") Reported-by: Andy Shevchenko <andy.shevchenko@gmail.com> Tested-by: Andy Shevchenko <andy.shevchenko@gmail.com> Cc: David Engraf <david.engraf@sysgo.com> Cc: Dominik Brodowski <linux@dominikbrodowski.net> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Cc: Philippe Ombredanne <pombredanne@nexb.com> Cc: Arnd Bergmann <arnd@arndb.de> Cc: Luc Van Oostenryck <luc.vanoostenryck@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
2137397c92
commit
a841c673f1
@ -550,6 +550,7 @@ skip:
|
|||||||
initrd_end = 0;
|
initrd_end = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef CONFIG_BLK_DEV_RAM
|
||||||
#define BUF_SIZE 1024
|
#define BUF_SIZE 1024
|
||||||
static void __init clean_rootfs(void)
|
static void __init clean_rootfs(void)
|
||||||
{
|
{
|
||||||
@ -596,6 +597,7 @@ static void __init clean_rootfs(void)
|
|||||||
ksys_close(fd);
|
ksys_close(fd);
|
||||||
kfree(buf);
|
kfree(buf);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
static int __init populate_rootfs(void)
|
static int __init populate_rootfs(void)
|
||||||
{
|
{
|
||||||
@ -638,10 +640,8 @@ static int __init populate_rootfs(void)
|
|||||||
printk(KERN_INFO "Unpacking initramfs...\n");
|
printk(KERN_INFO "Unpacking initramfs...\n");
|
||||||
err = unpack_to_rootfs((char *)initrd_start,
|
err = unpack_to_rootfs((char *)initrd_start,
|
||||||
initrd_end - initrd_start);
|
initrd_end - initrd_start);
|
||||||
if (err) {
|
if (err)
|
||||||
printk(KERN_EMERG "Initramfs unpacking failed: %s\n", err);
|
printk(KERN_EMERG "Initramfs unpacking failed: %s\n", err);
|
||||||
clean_rootfs();
|
|
||||||
}
|
|
||||||
free_initrd();
|
free_initrd();
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user