]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
vol: modify volume updateDate upon salvage change
authorJeffrey Altman <jaltman@auristor.com>
Fri, 2 Jun 2017 02:25:49 +0000 (22:25 -0400)
committerStephan Wiesand <stephan.wiesand@desy.de>
Wed, 7 Jun 2017 16:11:53 +0000 (12:11 -0400)
If the salvager changed the volume, set the VolumeDiskData.updateDate
field so that

  1. the change is visible via "vos examine"

  2. backup services will backup the corrected volume

Teradactyl pointed out the problem which forces cell administrators
to manually trigger a backup for each volume that has been salvaged.

Reviewed-on: https://gerrit.openafs.org/12629
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
(cherry picked from commit cdb92f94598e5b25fbcdfc6fb1650218ec05d63f)

Change-Id: I0ecf0bf52a78cd6e1de4e79fc4a33cb509a816f5
Reviewed-on: https://gerrit.openafs.org/12633
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Tested-by: Michael Meffie <mmeffie@sinenomine.net>
Reviewed-by: Mark Vitale <mvitale@sinenomine.net>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
src/vol/vol-salvage.c
src/vol/volume.h

index 53519dcc2a7727b38e77ac34ce06d8fb8a5917de..bfe60edd042ee60c8e2d65d6b86bfd7bfc2e3069 100644 (file)
@@ -4330,7 +4330,12 @@ SalvageVolume(struct SalvInfo *salvinfo, struct InodeSummary *rwIsp, IHandle_t *
     volHeader.inUse = 0;       /* clear flag indicating inUse@last crash */
     volHeader.needsSalvaged = 0;       /* clear 'damaged' flag */
     volHeader.inService = 1;   /* allow service again */
-    volHeader.needsCallback = (salvinfo->VolumeChanged != 0);
+    if (salvinfo->VolumeChanged) {
+       volHeader.needsCallback = 1;
+       volHeader.updateDate = time(NULL);
+    } else {
+       volHeader.needsCallback = 0;
+    }
     volHeader.dontSalvage = DONT_SALVAGE;
     salvinfo->VolumeChanged = 0;
     if (!Testing) {
index f9ae8af9472c0c781b2fddf1420076d067c06dc5..ee46e3b3104e540a56f222040bfe11678624f971 100644 (file)
@@ -457,7 +457,7 @@ typedef struct VolumeDiskData {
                                 * a readonly volume (replicated volumes have
                                 * the same creation date) */
     Date accessDate;           /* Last access time by a user, large granularity */
-    Date updateDate;           /* Last modification by user */
+    Date updateDate;           /* Last modification by user or salvager */
     Date expirationDate;       /* 0 if it never expires */
     Date backupDate;           /* last time a backup clone was taken */