From 98222fb3b0b9adebb734195c7c21f646fc7c9b70 Mon Sep 17 00:00:00 2001 From: Andrew Deason Date: Tue, 21 Feb 2012 17:40:46 -0600 Subject: [PATCH] salvager: Do not set fileName on header fixup 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. Reviewed-on: http://gerrit.openafs.org/6783 Reviewed-by: Derrick Brashear Tested-by: BuildBot (cherry picked from commit 76f12c2389fd2a8e09b4e869730169401d154ce9) Change-Id: I4d59de02a190a6d175735482aa102a496407f32a Reviewed-on: http://gerrit.openafs.org/9457 Reviewed-by: Derrick Brashear Reviewed-by: Andrew Deason Tested-by: BuildBot Reviewed-by: Stephan Wiesand --- src/vol/vol-salvage.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/vol/vol-salvage.c b/src/vol/vol-salvage.c index bfd18fb5f..e8a9e61f9 100644 --- a/src/vol/vol-salvage.c +++ b/src/vol/vol-salvage.c @@ -2346,7 +2346,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 { @@ -2364,7 +2363,6 @@ SalvageVolumeHeaderFile(struct SalvInfo *salvinfo, struct InodeSummary *isp, strcpy(headerName, isp->volSummary->fileName); } else { (void)afs_snprintf(headerName, sizeof headerName, VFORMAT, afs_printable_uint32_lu(isp->volumeId)); - isp->volSummary->fileName = ToString(headerName); } (void)afs_snprintf(path, sizeof path, "%s" OS_DIRSEP "%s", salvinfo->fileSysPath, headerName); -- 2.39.5