From 76f12c2389fd2a8e09b4e869730169401d154ce9 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. Change-Id: Ibb7b5fbadb701028a6bafe01ae9f8d3265e2f443 Reviewed-on: http://gerrit.openafs.org/6783 Reviewed-by: Derrick Brashear Tested-by: BuildBot --- 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 a507901dd4..88b9391478 100644 --- a/src/vol/vol-salvage.c +++ b/src/vol/vol-salvage.c @@ -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);