Unlink files, symlinks, FIFOs, devices etc. (except directories) before
writing them when extracting CPIOs. This stops weird behaviour like:
1) writing through symlinks created in earlier CPIOs. eg foo->bar in
the first CPIO. Having foo as a non-link in a subsequent CPIO,
results in bar being written and foo remaining as a symlink. 2) if the first version of file foo is larger than foo in a
subsequent CPIO, we end up with a mix of the two. ie. neither
the first or second version of /foo.
3) special files like devices, fifo etc. can't be overwritten in
subsequent CPIOS.
With this, the kernel will more closely replicate
for i in *.cpio; do cpio --extract --unconditional < $i ; done
This is a change but it's regarded as fixing broken functionality.
Signed-off-by: Michael Neuling <mikey@xxxxxxxxxxx>