[patch] initrd-archivev2 untar and mkfs.minix support

Dave Cinege (dcinege@psychosis.com)
Sun, 18 Jan 1998 16:07:34 -0500


First - SEE ADDITIONAL REQUIRED PATCH BELOW!
Second - Please mail me your good or bad results.
I got much less response then my log's showed DL's

You can download the new version of initrd-archive support @
ftp.psychosis.com /pub/initrd-archive2.diff.gz

It is made against 2.0.33, will patch against it and .32, and probably much lower.

Changes from v1:
rd.c
I boo-boo'ed and left two variables inside an initrd #ifdef. rd code would not compile
if you speced NO initrd support. Fixed...

rd.mkminix.c
Spaced it out pretty. Few more comments. That's it.

rd.untar.c
Did some work arounds for anomilies I ran into making archives with GNU tar.
More definate end of archive check.
Spaced it out all pretty. More comments about limitations, etc.
Moved to simple_strtoul() from my own function.
SEE THE ADDITIONAL REQUIRED PATCH BELOW!

Other files...no changes.

For a HUGH : > description of this feature, search the linux-kernel archives.
Initial post was on the 10th. Please also view the comments at the
begining of the source.

On the list to do:
auto fs ext2 support
do auto fs after invalidating initrd (saves initial required memory)
fix up rd code a bit

This will all be saved for the 2.1 version (no sense beating a dead horse ; >)
I hope to freeze this version and submit it for 2.0.x kernels if their are no bug reports.
(most likey will be rejected, but oh well, gotta try)

from rd.untar.c
/*
* simple_strtoul() does not strip leading spaces (0x20) from the input
* string. The 'real' strtoul does. This patch has been submitted to Linus
* but as of yet it is not in any kernel tree. You must apply this by
* hand if it does not yet exist:
*
* linux-2.0.33/lib/vsprintf.c line 17
* unsigned long simple_strtoul(const char *cp,char **endp,unsigned int base)
* {
* unsigned long result = 0,value;
*
* + while (*cp == ' ') {
* + cp++;
* + }
* if (!base) {
* base = 10;
* if (*cp == '0') {
* base = 8;
*/