From 2e66c828b1224fb651ba66e7d7ec59da469f7993 Mon Sep 17 00:00:00 2001 From: Andrew Deason Date: Thu, 8 Jul 2010 16:40:07 -0500 Subject: [PATCH] GetInodeSummary: free inode info In the salvager, GetInodeSummary stores some information about the relevant inodes into a file. Free the memory for that information after it's been written out, since we don't reference that memory again. Change-Id: I9578f941d2ea13240dd22d9b6e7a1f32217263c9 Reviewed-on: http://gerrit.openafs.org/2370 Tested-by: Andrew Deason Reviewed-by: Derrick Brashear --- src/vol/vol-salvage.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/vol/vol-salvage.c b/src/vol/vol-salvage.c index b005901e2..1488bee11 100644 --- a/src/vol/vol-salvage.c +++ b/src/vol/vol-salvage.c @@ -1111,7 +1111,7 @@ GetInodeSummary(FILE *inodeFile, VolumeId singleVolumeNumber) struct afs_stat status; int forceSal, err; int code; - struct ViceInodeInfo *ip; + struct ViceInodeInfo *ip, *ip_save; struct InodeSummary summary; char summaryFileName[50]; FILE *summaryFile; @@ -1213,6 +1213,7 @@ GetInodeSummary(FILE *inodeFile, VolumeId singleVolumeNumber) Abort("Unable to rewrite inode table; %s not salvaged\n", dev); } summary.index = 0; + ip_save = ip; while (nInodes) { CountVolumeInodes(ip, nInodes, &summary); if (fwrite(&summary, sizeof(summary), 1, summaryFile) != 1) { @@ -1224,6 +1225,8 @@ GetInodeSummary(FILE *inodeFile, VolumeId singleVolumeNumber) nInodes -= summary.nInodes; ip += summary.nInodes; } + free(ip_save); + ip = ip_save = NULL; /* Following fflush is not fclose, because if it was debug mode would not work */ if (fflush(summaryFile) == EOF || fsync(fileno(summaryFile)) == -1) { Log("Unable to write summary file (errno = %d); %s not salvaged\n", errno, dev); -- 2.39.5