The attached patch to /usr/src/sbin/dump/optr.c changes the comparison
so that dumps are treated by dump -w as having been done on midnight of the day they were actually run. This makes dump -w behave as expected for regularly scheduled daily dumps - if they all run the same day. It makes dump -w behave strangely if you dump late in the day and check again after midnight, but that is the lesser of two evils. Submitted by: Mike Meyer <mwm@phone.net> PR: 9429
This commit is contained in:
parent
99c81ca94d
commit
f1a3bb13d8
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=44929
@ -36,7 +36,7 @@
|
|||||||
static char sccsid[] = "@(#)optr.c 8.2 (Berkeley) 1/6/94";
|
static char sccsid[] = "@(#)optr.c 8.2 (Berkeley) 1/6/94";
|
||||||
#endif
|
#endif
|
||||||
static const char rcsid[] =
|
static const char rcsid[] =
|
||||||
"$Id$";
|
"$Id: optr.c,v 1.5 1998/06/15 06:58:11 charnier Exp $";
|
||||||
#endif /* not lint */
|
#endif /* not lint */
|
||||||
|
|
||||||
#include <sys/param.h>
|
#include <sys/param.h>
|
||||||
@ -484,7 +484,7 @@ lastdump(arg)
|
|||||||
register struct dumpdates *dtwalk;
|
register struct dumpdates *dtwalk;
|
||||||
char *lastname, *date;
|
char *lastname, *date;
|
||||||
int dumpme;
|
int dumpme;
|
||||||
time_t tnow;
|
time_t tnow, then;
|
||||||
|
|
||||||
(void) time(&tnow);
|
(void) time(&tnow);
|
||||||
getfstab(); /* /etc/fstab input */
|
getfstab(); /* /etc/fstab input */
|
||||||
@ -500,13 +500,13 @@ lastdump(arg)
|
|||||||
if (strncmp(lastname, dtwalk->dd_name,
|
if (strncmp(lastname, dtwalk->dd_name,
|
||||||
sizeof(dtwalk->dd_name)) == 0)
|
sizeof(dtwalk->dd_name)) == 0)
|
||||||
continue;
|
continue;
|
||||||
date = (char *)ctime(&dtwalk->dd_ddate);
|
then = 86400 * (dtwalk->dd_ddate / 86400);
|
||||||
|
date = (char *)ctime(&then);
|
||||||
date[16] = '\0'; /* blast away seconds and year */
|
date[16] = '\0'; /* blast away seconds and year */
|
||||||
lastname = dtwalk->dd_name;
|
lastname = dtwalk->dd_name;
|
||||||
dt = fstabsearch(dtwalk->dd_name);
|
dt = fstabsearch(dtwalk->dd_name);
|
||||||
dumpme = (dt != NULL &&
|
dumpme = (dt != NULL &&
|
||||||
dt->fs_freq != 0 &&
|
dt->fs_freq != 0 && then < tnow - (dt->fs_freq * 86400));
|
||||||
dtwalk->dd_ddate < tnow - (dt->fs_freq * 86400));
|
|
||||||
if (arg != 'w' || dumpme)
|
if (arg != 'w' || dumpme)
|
||||||
(void) printf(
|
(void) printf(
|
||||||
"%c %8s\t(%6s) Last dump: Level %c, Date %s\n",
|
"%c %8s\t(%6s) Last dump: Level %c, Date %s\n",
|
||||||
|
Loading…
Reference in New Issue
Block a user