mirror of
https://git.openafs.org/openafs.git
synced 2025-01-21 08:20:16 +00:00
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 <shadow@dementix.org> Tested-by: BuildBot <buildbot@rampaginggeek.com>
This commit is contained in:
parent
634c6f184b
commit
76f12c2389
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user