-$Id: CHANGES,v 1.310 2010/03/22 16:08:10 stelian Exp $
+$Id: CHANGES,v 1.311 2010/04/28 09:29:35 stelian Exp $
Changes between versions 0.4b42 and 0.4b43 (released ?????????????)
===================================================================
Brière <fbriere@fbriere.net> for the bug report and the associated
patch.
+9. Fix progress/estimated blocks display in dump when doing really
+ huge backups. Thanks to Steve Bonds <sbonds@users.sourceforge.net>
+ for the bug report and tests. (Sourceforge bug #2987758)
+
Changes between versions 0.4b41 and 0.4b42 (released June 18, 2009)
===================================================================
* Stelian Pop <stelian@popies.net>, 1999-2000
* Stelian Pop <stelian@popies.net> - Alcôve <www.alcove.com>, 2000-2002
*
- * $Id: dump.h,v 1.49 2004/07/01 09:14:49 stelian Exp $
+ * $Id: dump.h,v 1.50 2010/04/28 09:29:50 stelian Exp $
*/
/*-
extern dump_ino_t curino; /* current inumber; used globally */
extern int newtape; /* new tape flag */
extern int density; /* density in 0.1" units */
-extern long tapesize; /* estimated tape size, blocks */
+extern long long tapesize; /* estimated tape size, blocks */
extern long tsize; /* tape size in 0.1" units */
extern long asize; /* number of 0.1" units written on current tape */
extern int etapes; /* estimated number of tapes */
/* mapping rouintes */
struct dinode;
long blockest __P((struct dinode const *dp));
-int mapfiles __P((dump_ino_t maxino, long *tapesize));
+int mapfiles __P((dump_ino_t maxino, long long *tapesize));
#ifdef __linux__
-int mapfilesfromdir __P((dump_ino_t maxino, long *tapesize, char *directory));
-int maponefile __P((dump_ino_t maxino, long *tapesize, char *directory));
+int mapfilesfromdir __P((dump_ino_t maxino, long long *tapesize, char *directory));
+int maponefile __P((dump_ino_t maxino, long long *tapesize, char *directory));
#endif
-int mapdirs __P((dump_ino_t maxino, long *tapesize));
+int mapdirs __P((dump_ino_t maxino, long long *tapesize));
/* file dumping routines */
void blksout __P((blk_t *blkp, int frags, dump_ino_t ino));
#ifndef lint
static const char rcsid[] =
- "$Id: main.c,v 1.96 2009/07/23 09:34:07 stelian Exp $";
+ "$Id: main.c,v 1.97 2010/04/28 09:29:50 stelian Exp $";
#endif /* not lint */
#include <config.h>
dump_ino_t curino; /* current inumber; used globally */
int newtape; /* new tape flag */
int density; /* density in 0.1" units */
-long tapesize; /* estimated tape size, blocks */
+long long tapesize; /* estimated tape size, blocks */
long tsize; /* tape size in 0.1" units */
long asize; /* number of 0.1" units written on current tape */
int etapes; /* estimated number of tapes */
if (pipeout || unlimited) {
tapesize += 1 + ntrec; /* 1 map header + trailer blocks */
- msg("estimated %ld blocks.\n", tapesize);
+ msg("estimated %lld blocks.\n", tapesize);
} else {
double fetapes;
if (blocksperfiles) {
- long tapesize_left;
+ long long tapesize_left;
tapesize_left = tapesize;
fetapes = 0;
tapesize += (etapes - 1) *
(howmany(mapsize * sizeof(char), TP_BSIZE) + 1);
tapesize += etapes + ntrec; /* headers + trailer blks */
- msg("estimated %ld blocks on %3.2f tape(s).\n",
+ msg("estimated %lld blocks on %3.2f tape(s).\n",
tapesize, fetapes);
}
#ifndef lint
static const char rcsid[] =
- "$Id: traverse.c,v 1.68 2010/03/22 15:40:55 stelian Exp $";
+ "$Id: traverse.c,v 1.69 2010/04/28 09:29:50 stelian Exp $";
#endif /* not lint */
#include <config.h>
static void dmpindir __P((dump_ino_t ino, daddr_t blk, int level, fsizeT *size));
static int searchdir __P((dump_ino_t ino, daddr_t blkno, long size, long filesize));
#endif
-static void mapfileino __P((dump_ino_t ino, struct dinode const *dp, long *tapesize, int *dirskipped));
+static void mapfileino __P((dump_ino_t ino, struct dinode const *dp, long long *tapesize, int *dirskipped));
static void dump_xattr __P((dump_ino_t ino, struct dinode *dp));
#ifdef HAVE_EXT2_JOURNAL_INUM
* copy of the given inode, or be NULL (in which case it is fetched.)
*/
static void
-mapfileino(dump_ino_t ino, struct dinode const *dp, long *tapesize, int *dirskipped)
+mapfileino(dump_ino_t ino, struct dinode const *dp, long long *tapesize, int *dirskipped)
{
int mode;
*/
#ifdef __linux__
int
-mapfiles(UNUSED(dump_ino_t maxino), long *tapesize)
+mapfiles(UNUSED(dump_ino_t maxino), long long *tapesize)
{
ext2_ino_t ino;
int anydirskipped = 0;
}
#else
int
-mapfiles(dump_ino_t maxino, long *tapesize)
+mapfiles(dump_ino_t maxino, long long *tapesize)
{
dump_ino_t ino;
int anydirskipped = 0;
#ifdef __linux__
int
-maponefile(UNUSED(dump_ino_t maxino), long *tapesize, char *directory)
+maponefile(UNUSED(dump_ino_t maxino), long long *tapesize, char *directory)
{
errcode_t retval;
ext2_ino_t dir_ino;
#ifdef __linux__
struct mapfile_context {
- long *tapesize;
+ long long *tapesize;
int *anydirskipped;
};
* the directories in the filesystem.
*/
int
-mapfilesfromdir(UNUSED(dump_ino_t maxino), long *tapesize, char *directory)
+mapfilesfromdir(UNUSED(dump_ino_t maxino), long long *tapesize, char *directory)
{
errcode_t retval;
struct mapfile_context mfc;
struct mapdirs_context {
int *ret;
int nodump;
- long *tapesize;
+ long long *tapesize;
};
#endif
* pass using this algorithm.
*/
int
-mapdirs(dump_ino_t maxino, long *tapesize)
+mapdirs(dump_ino_t maxino, long long *tapesize)
{
struct dinode *dp;
int isdir;
{
struct mapdirs_context *mdc;
int *ret;
- long *tapesize;
+ long long *tapesize;
struct dinode *ip;
mdc = (struct mapdirs_context *)private;