-$Id: CHANGES,v 1.125 2001/07/19 09:03:44 stelian Exp $
+$Id: CHANGES,v 1.126 2001/07/20 09:01:44 stelian Exp $
Changes between versions 0.4b22 and 0.4b23 (released ????????????)
==================================================================
12. Added the -E option to dump which specify a file containing
inode numbers to exclude from the dump.
+13. Fixed the compressed multi-volume dump + restore.
+
Changes between versions 0.4b21 and 0.4b22 (released May 12, 2001)
==================================================================
#ifndef lint
static const char rcsid[] =
- "$Id: tape.c,v 1.51 2001/07/18 13:12:33 stelian Exp $";
+ "$Id: tape.c,v 1.52 2001/07/20 09:01:46 stelian Exp $";
#endif /* not lint */
#include <config.h>
static ssize_t atomic_read __P((int, void *, size_t));
static ssize_t atomic_write __P((int, const void *, size_t));
-static void doslave __P((int, int));
+static void doslave __P((int, int, int));
static void enslave __P((void));
static void flushtape __P((void));
static void killall __P((void));
blocksthisvol += ntrec;
if (!pipeout && !unlimited) {
if (blocksperfile) {
- if ( compressed ? csize >= blocksperfile * 1024
+ if ( compressed ? csize + writesize >= blocksperfile * 1024
: blocksthisvol >= blocksperfile ) {
close_rewind();
startnewtape(0);
!= sizeof i)
quit("master/slave protocol botched 3\n");
#endif
- doslave(cmd[0], i);
+ doslave(cmd[0], i, (slaves[i].pid == slp->pid));
Exit(X_FINOK);
}
else
* slaves.
*/
static void
-doslave(int cmd, int slave_number)
+doslave(int cmd, int slave_number, int first)
{
register int nread;
int nextslave, size, eot_count, bufsize;
char *buffer;
#ifdef HAVE_ZLIB
struct tapebuf *comp_buf = NULL;
- int compresult, do_compress = slave_number > 0;
+ int compresult, do_compress = !first;
unsigned long worklen;
#endif /* HAVE_ZLIB */
struct slave_results returns;
#ifndef lint
static const char rcsid[] =
- "$Id: tape.c,v 1.44 2001/07/18 14:57:46 stelian Exp $";
+ "$Id: tape.c,v 1.45 2001/07/20 09:01:46 stelian Exp $";
#endif /* not lint */
#include <config.h>
volno = newvol;
setdumpnum();
FLUSHTAPEBUF();
+ findtapeblksize();
if (gethead(&tmpbuf) == FAIL) {
Dprintf(stdout, "header read failed at %ld blocks\n", (long)blksread);
fprintf(stderr, "tape is not dump tape\n");