]> git.wh0rd.org - dump.git/commitdiff
Waitpid problem with external RSH.
authorStelian Pop <stelian@popies.net>
Tue, 2 Nov 1999 09:35:55 +0000 (09:35 +0000)
committerStelian Pop <stelian@popies.net>
Tue, 2 Nov 1999 09:35:55 +0000 (09:35 +0000)
Ext2fs_llseek instead of llseek.
Removed CVS Id from autoconf files.

CHANGES
KNOWNBUGS
MCONFIG.in
Makefile.in
TODO
acconfig.h
common/dumprmt.c
configure.in
dump/tape.c
dump/traverse.c

diff --git a/CHANGES b/CHANGES
index 607a400f78831b73bdc42db0d60effcdf8d6b9fe..6b8c025cf8de9bbdfdc605beda1e61fc74704ba7 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,4 +1,4 @@
-$Id: CHANGES,v 1.10 1999/10/31 19:48:25 tiniou Exp $
+$Id: CHANGES,v 1.11 1999/11/02 09:35:55 tiniou Exp $
 
 Changes between versions 0.4b7 and 0.4b8 (released ???????????????)
 ===================================================================
@@ -17,12 +17,15 @@ Changes between versions 0.4b7 and 0.4b8 (released ???????????????)
        contain them :(. Thanks to Eric Maisonobe <virnet@nat.fr>
        for submitting the bug report.
 
-5.     Added the RSH environment variable in order to be able to
+5.     Use ext2fs_llseek instead of llseek. With recent e2fsprogs
+       this should enable dumping big (huge) filesystems.
+
+6.     Added the RSH environment variable in order to be able to
        use a rsh replacement like ssh when doing remote backups (and
        bypass the security limitations of rcmd). Now you can do remote
        backups without being root (or making dump setuid root).
 
-6.     Modified again the way dumpdates works. For incremental dumps,
+7.     Modified again the way dumpdates works. For incremental dumps,
        we need to read dumpdates even if we are not using 'u' option.
        Thanks to Bdale Garbee <bdale@gag.com> for his ideas on how
        this should work.
index 6b0638612a9657af0d5d2f5af102f2d78929be53..01e8b7294fed6b3e31d8612757948379e63ffdca 100644 (file)
--- a/KNOWNBUGS
+++ b/KNOWNBUGS
@@ -1,17 +1,17 @@
-$Id: KNOWNBUGS,v 1.3 1999/10/11 13:31:03 stelian Exp $
+$Id: KNOWNBUGS,v 1.4 1999/11/02 09:35:55 tiniou Exp $
 
 Known bugs and limitations of the dump/restore port
 ===================================================
 
-1.     Multi-volume does not work: restore does not succeeds in
-       resynchronizing itself on a multi-volume dump.  Thus, some files are
-       not restored.
-
-       Update: this is fixed in 4.0b5, needs succes reports!
-
-2.     I have tried to minimize changes in the BSD source and some parts
+1.     I have tried to minimize changes in the BSD source and some parts
        may look ugly.  dump/tape.c is really awfull but this is pure BSD
        code :-)  Maybe, I should replace it with a simpler and cleaner
        version.
 
-3.     Kerberos mode is _NOT_ tested.
+2.     Kerberos mode is _NOT_ tested.
+
+3.     Some users related possible problems when dumping large,
+       active (mounted) filesystems. The problems are reported as
+       lseek and read error messages (with a negative count). If
+       you encounter this kind of problems, please report them
+       to the author.
index abbb434d145284ea921b077dddf0bd1c125ff7a1..e4e91d73e57f19203d0ba4804ad95cb2e3141dfc 100644 (file)
@@ -1,5 +1,3 @@
-# $Id: MCONFIG.in,v 1.5 1999/10/13 09:57:12 stelian Exp $
-
 VPATH=         $(srcdir)
 
 top_builddir=  @top_builddir@
index deb2896ef4e147e52f3be9882ec29829a9b48fae..34152c7a47e38619ab06d71d0c948df525b3f4b9 100644 (file)
@@ -1,4 +1,3 @@
-# $Id: Makefile.in,v 1.3 1999/10/11 13:31:03 stelian Exp $
 srcdir=                @srcdir@
 top_srcdir=    @top_srcdir@
 
diff --git a/TODO b/TODO
index dfc067263f2049eed7de433bdadd64c015e8bce9..2b3cc07c031892c3ed6248dd4b21b1f774eb2b13 100644 (file)
--- a/TODO
+++ b/TODO
@@ -1,4 +1,4 @@
-$Id: TODO,v 1.4 1999/10/11 13:31:04 stelian Exp $
+$Id: TODO,v 1.5 1999/11/02 09:35:55 tiniou Exp $
 
 1.     Make dump honor the no-dump attribute on directories.  Currently, it
        honours it only on files.  This means that a directory flagged with
@@ -17,7 +17,8 @@ $Id: TODO,v 1.4 1999/10/11 13:31:04 stelian Exp $
        was ported from *BSD and was not tested - in fact, this
        wasn't even compiled in!). Need success reports for this.
 
-6.     Explore and correct dump problems on a 4GB+ filesystem.
+6.     Explore and correct dump problems on a 4GB+ active 
+       filesystem (lseek/read negative count).
 
 7.     Clean-up the code by removing all those #ifdef _BSD, 
        since nobody would ever re-compile this on a BSD system. 
index 28e3ed8821c7e31e410ff3223affd59052afdab6..761eb13626cefc405e7b7ae039af8551c965b649 100644 (file)
@@ -1,5 +1,3 @@
-/* $Id: acconfig.h,v 1.2 1999/10/11 13:31:04 stelian Exp $ */
-
 /* Define to __s64 if <sys/types.h> does not define */
 #undef quad_t
 
index db18d328547cb717a37cc586b04b950d68313c62..5f53079c6ddb7131702af8d8a39a0b2275cb4fb4 100644 (file)
@@ -40,7 +40,7 @@
 
 #ifndef lint
 static const char rcsid[] =
-       "$Id: dumprmt.c,v 1.7 1999/10/30 22:55:50 tiniou Exp $";
+       "$Id: dumprmt.c,v 1.8 1999/11/02 09:35:56 tiniou Exp $";
 #endif /* not lint */
 
 #ifdef __linux__
@@ -97,6 +97,7 @@ static const char rcsid[] =
 static int rmtstate = TS_CLOSED;
 static int tormtape = -1;
 static int fromrmtape = -1;
+int rshpid = -1;
 static const char *rmtpeer = 0;
 
 static int okname __P((const char *));
@@ -203,7 +204,7 @@ rmtgetconn(void)
                rshcmd[4] = rmt;
                rshcmd[5] = NULL;
 
-               if (piped_child(rshcmd) < 0) {
+               if ((rshpid = piped_child(rshcmd)) < 0) {
                        msg("cannot open connection\n");
                        return 0;
                }
index 5071e94642b6a5730f1c6be9703f47a6a7b0dcb1..a66f6288cab2ccbffb3050b23ca80030c8734c02 100644 (file)
@@ -1,5 +1,3 @@
-dnl $Id: configure.in,v 1.5 1999/10/11 13:31:04 stelian Exp $
-
 AC_INIT(dump/dump.h)
 
 MCONFIG=./MCONFIG
index b0d7fd4b01a74f9011eaacbe6dd46909667c13ce..1b28c41e6e6307a9a9f662d36fc243c0b28045c3 100644 (file)
@@ -40,7 +40,7 @@
 
 #ifndef lint
 static const char rcsid[] =
-       "$Id: tape.c,v 1.6 1999/10/13 09:57:20 stelian Exp $";
+       "$Id: tape.c,v 1.7 1999/11/02 09:35:56 tiniou Exp $";
 #endif /* not lint */
 
 #ifdef __linux__
@@ -95,6 +95,7 @@ extern        int ntrec;              /* blocking factor on tape */
 extern int cartridge;
 extern char *host;
 char   *nexttape;
+extern  pid_t rshpid;
 
 static ssize_t atomic_read __P((int, void *, size_t));
 static ssize_t atomic_write __P((int, const void *, size_t));
@@ -661,7 +662,8 @@ restore_check_point:
                        tapeno+1, parentpid, childpid);
 #endif /* TDEBUG */
                while ((waitpid = wait(&status)) != childpid)
-                       msg("Parent %d waiting for child %d has another child %d return\n",
+                       if (waitpid != rshpid)
+                               msg("Parent %d waiting for child %d has another child %d return\n",
                                parentpid, childpid, waitpid);
                if (status & 0xFF) {
                        msg("Child %d returns LOB status %o\n",
index 0865527eb9e69334a81f26f7f5e2d194bf86ead8..d3f99bfdf2994e681c592579fd046b678225a658 100644 (file)
@@ -40,7 +40,7 @@
 
 #ifndef lint
 static const char rcsid[] =
-       "$Id: traverse.c,v 1.6 1999/10/13 09:57:20 stelian Exp $";
+       "$Id: traverse.c,v 1.7 1999/11/02 09:35:56 tiniou Exp $";
 #endif /* not lint */
 
 #include <sys/param.h>
@@ -93,7 +93,6 @@ typedef       long fsizeT;
 #ifdef __linux__
 static int searchdir __P((struct ext2_dir_entry *dp, int offset,
                           int blocksize, char *buf, void *private));
-loff_t llseek (int fd, loff_t offset, int origin);
 #else
 static int dirindir __P((ino_t ino, daddr_t blkno, int level, long *size));
 static void dmpindir __P((ino_t ino, daddr_t blk, int level, fsizeT *size));
@@ -1013,8 +1012,8 @@ bread(daddr_t blkno, char *buf, int size)
 
 loop:
 #ifdef __linux__
-       if (llseek(diskfd, ((ext2_loff_t)blkno << dev_bshift), 0) !=
-                       ((ext2_loff_t)blkno << dev_bshift))
+       if (ext2fs_llseek(diskfd, (((ext2_loff_t)blkno) << dev_bshift), 0) !=
+                       (((ext2_loff_t)blkno) << dev_bshift))
 #else
        if (lseek(diskfd, ((off_t)blkno << dev_bshift), 0) !=
                                                ((off_t)blkno << dev_bshift))
@@ -1059,8 +1058,8 @@ loop:
        memset(buf, 0, size);
        for (i = 0; i < size; i += dev_bsize, buf += dev_bsize, blkno++) {
 #ifdef __linux__
-               if (llseek(diskfd, ((ext2_loff_t)blkno << dev_bshift), 0) !=
-                               ((ext2_loff_t)blkno << dev_bshift))
+               if (ext2fs_llseek(diskfd, (((ext2_loff_t)blkno) << dev_bshift), 0) !=
+                               (((ext2_loff_t)blkno) << dev_bshift))
 #else
                if (lseek(diskfd, ((off_t)blkno << dev_bshift), 0) !=
                                                ((off_t)blkno << dev_bshift))