From 1e6fb1b7b7ed32e2035452db9fc221f38a8b4956 Mon Sep 17 00:00:00 2001 From: Hans-Werner Paulsen Date: Thu, 14 Aug 2014 11:56:22 +0200 Subject: [PATCH] use V_copyDate in DumpHeader for cloned volumes Volume dumps can be created from backup volumes, cloned volumes, or directly from RW volumes. The beginning and end of the time range covered by the dump is recorded in the DumpHeader. The end time is based on the type of the volume. Use backupDate for backup volumes, use copyDate for cloned volumes, and updateDate for RW volumes. Change-Id: I18206d25f056e553eed2f3c3e0695fed003f3714 Reviewed-on: http://gerrit.openafs.org/11389 Reviewed-by: Jeffrey Altman Tested-by: BuildBot Reviewed-by: D Brashear --- src/volser/dumpstuff.c | 14 +++++++++++++- src/volser/vol-dump.c | 14 +++++++++++++- 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/src/volser/dumpstuff.c b/src/volser/dumpstuff.c index 03239224c..bc1fe9fea 100644 --- a/src/volser/dumpstuff.c +++ b/src/volser/dumpstuff.c @@ -1037,7 +1037,19 @@ DumpDumpHeader(struct iod *iodp, Volume * vp, if (!code) code = DumpString(iodp, 'n', V_name(vp)); dumpTimes[0] = fromtime; - dumpTimes[1] = V_backupDate(vp); /* Until the time the clone was made */ + switch (V_type(vp)) { + case readwriteVolume: + dumpTimes[1] = V_updateDate(vp); /* until last update */ + break; + case readonlyVolume: + dumpTimes[1] = V_copyDate(vp); /* until clone was made */ + break; + case backupVolume: + dumpTimes[1] = V_backupDate(vp); /* until backup was made */ + break; + default: + code = EINVAL; + } if (!code) code = DumpArrayInt32(iodp, 't', (afs_uint32 *) dumpTimes, 2); return code; diff --git a/src/volser/vol-dump.c b/src/volser/vol-dump.c index f0559523f..9de1780d1 100644 --- a/src/volser/vol-dump.c +++ b/src/volser/vol-dump.c @@ -375,7 +375,19 @@ DumpDumpHeader(int dumpfd, Volume * vp, afs_int32 fromtime) code = DumpString(dumpfd, 'n', V_name(vp)); dumpTimes[0] = fromtime; - dumpTimes[1] = V_backupDate(vp); /* Until the time the clone was made */ + switch (V_type(vp)) { + case readwriteVolume: + dumpTimes[1] = V_updateDate(vp); /* until last update */ + break; + case readonlyVolume: + dumpTimes[1] = V_copyDate(vp); /* until clone was made */ + break; + case backupVolume: + dumpTimes[1] = V_backupDate(vp); /* until backup was made */ + break; + default: + code = EINVAL; + } if (!code) code = DumpArrayInt32(dumpfd, 't', (afs_uint32 *) dumpTimes, 2); -- 2.39.5