From: Hans-Werner Paulsen Date: Thu, 14 Aug 2014 09:56:22 +0000 (+0200) Subject: use V_copyDate in DumpHeader for cloned volumes X-Git-Tag: upstream/1.8.0_pre1^2~595 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=1e6fb1b7b7ed32e2035452db9fc221f38a8b4956;p=packages%2Fo%2Fopenafs.git 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 --- 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);