Ext2fs_llseek instead of llseek.
Removed CVS Id from autoconf files.
-$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 ???????????????)
===================================================================
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.
-$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.
-# $Id: MCONFIG.in,v 1.5 1999/10/13 09:57:12 stelian Exp $
-
VPATH= $(srcdir)
top_builddir= @top_builddir@
-# $Id: Makefile.in,v 1.3 1999/10/11 13:31:03 stelian Exp $
srcdir= @srcdir@
top_srcdir= @top_srcdir@
-$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
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.
-/* $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
#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__
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 *));
rshcmd[4] = rmt;
rshcmd[5] = NULL;
- if (piped_child(rshcmd) < 0) {
+ if ((rshpid = piped_child(rshcmd)) < 0) {
msg("cannot open connection\n");
return 0;
}
-dnl $Id: configure.in,v 1.5 1999/10/11 13:31:04 stelian Exp $
-
AC_INIT(dump/dump.h)
MCONFIG=./MCONFIG
#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__
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));
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",
#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>
#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));
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))
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))