salvager: Do not set fileName on header fixup
authorAndrew Deason <adeason@sinenomine.net>
Tue, 21 Feb 2012 23:40:46 +0000 (17:40 -0600)
committerDerrick Brashear <shadow@dementix.org>
Fri, 24 Feb 2012 12:25:16 +0000 (04:25 -0800)
Currently, SalvageVolumeHeaderFile will set isp->volSummary->fileName
to a new string whenever the volume header needs to be created or
re-written. When control reaches back to SalvageFileSys1, this can
cause DeleteExtraVolumeHeaderFile to delete the header, since
vsp->fileName is used as a sort of indicator to see whether or not a
volume has been referenced by the inode summary.

When we create a new header, we avoid this because we allocate a new
VolumeSummary struct, which is not caught by the last
DeleteExtraVolumeHeaderFile for loop in SalvageFileSys1. However, we
do delete the header when we simply re-write a header, since we use
the existing VolumeSummary struct. Set fileName in neither, for
consistency.

Change-Id: Ibb7b5fbadb701028a6bafe01ae9f8d3265e2f443
Reviewed-on: http://gerrit.openafs.org/6783
Reviewed-by: Derrick Brashear <shadow@dementix.org>
Tested-by: BuildBot <buildbot@rampaginggeek.com>

src/vol/vol-salvage.c

index a507901..88b9391 100644 (file)
@@ -2340,7 +2340,6 @@ SalvageVolumeHeaderFile(struct SalvInfo *salvinfo, struct InodeSummary *isp,
                isp->volumeId, (Testing ? "it would have been " : ""),
                path);
        isp->volSummary = calloc(1, sizeof(struct VolumeSummary));
-       isp->volSummary->fileName = ToString(headerName);
 
        writefunc = VCreateVolumeDiskHeader;
     } else {
@@ -2359,7 +2358,6 @@ SalvageVolumeHeaderFile(struct SalvInfo *salvinfo, struct InodeSummary *isp,
            } else {
                snprintf(headerName, sizeof headerName, VFORMAT,
                         afs_printable_uint32_lu(isp->volumeId));
-               isp->volSummary->fileName = ToString(headerName);
            }
            snprintf(path, sizeof path, "%s" OS_DIRSEP "%s",
                     salvinfo->fileSysPath, headerName);