cpio reporting too many 'blocks'

Giorgos Keramidas keramida at freebsd.org
Thu Sep 4 14:30:13 UTC 2008


On Wed, 03 Sep 2008 22:07:56 -0700, Tim Kientzle <kientzle at freebsd.org> wrote:
>Giorgos Keramidas wrote:
>> ACK.  If you want me to run any tests or test patches, please feel free
>> to send them this way :-)
>
> I think I found it.  <sigh>  Try this and let me know.
>
> Tim
> Index: cpio.c
> ===================================================================
> --- cpio.c	(revision 182102)
> +++ cpio.c	(working copy)
> @@ -863,7 +863,6 @@
>  	r = archive_write_close(cpio->archive);
>  	if (r != ARCHIVE_OK)
>  		cpio_errc(1, 0, archive_error_string(cpio->archive));
> -	archive_write_finish(cpio->archive);
>  
>  	if (!cpio->quiet) {
>  		blocks = (archive_position_uncompressed(cpio->archive) + 511)
> @@ -872,6 +871,7 @@
>  		    blocks == 1 ? "block" : "blocks");
>  	}
>  
> +	archive_write_finish(cpio->archive);
>  }

That's it.  Not the blocks reported look more sensible:

keramida at kobe:/ws/bsd/doc$ find * | cpio -p -dmu /hg/doc/bsd-import
40345 blocks
keramida at kobe:/ws/bsd/doc$ echo $(( $( find * | xargs cat | wc -c ) / 512 ))
40916

Thanks :)



More information about the freebsd-current mailing list