On Thu, Jun 12, 2014 at 21:07, Christian Weisgerber wrote: > After writing 2TB (INT_MAX * TP_BSIZE), dump(8) stops reporting > progress because the blockswritten variable has wrapped around to > negative. It needs to be a larger type like the tapesize variable; > see optr.c:timeest(). This only affects the terminal chatter. The > actual dump functionality is fine.
> int notify; /* notify operator flag */ > -int blockswritten; /* number of blocks written on current tape */ > +off_t blockswritten; /* number of blocks written on current tape */ > int tapeno; /* current tape number */ > time_t tstart_writing; /* when started writing the first tape block */ > long xferrate; /* averaged transfer rate of all volumes */ I'm not sure off_t is the right semantic type. Perhaps just use int64_t? (And maybe change xferrate? I'm not sure why that needs to change size based on machine, and I can probably assemble an i386 system capable of wrapping it. int64_t again.)