salvager: Fix in-memory invalid linktable counts
authorAndrew Deason <adeason@sinenomine.net>
Mon, 30 Sep 2013 22:53:36 +0000 (17:53 -0500)
committerDerrick Brashear <shadow@your-file-system.com>
Tue, 8 Oct 2013 12:49:39 +0000 (05:49 -0700)
When we have a nonexistant or invalid linktable, we manually set all
of the linkcounts to 1, since we're recreating the link table from
scratch. However, we also have a linkCount count in our in-memory
allInodes array, which could be populated by garbage if we had a
garbage linktable. So make sure to set our in-memory linkCount to 1
for each inode, so we don't use garbage linkcount data.

Change-Id: I8f4873e12f70f81ee6f2c764957e77136b0a385e
Reviewed-on: http://gerrit.openafs.org/10312
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@your-file-system.com>

src/vol/vol-salvage.c

index 259bb44..ae5e117 100644 (file)
@@ -1986,6 +1986,7 @@ DoSalvageVolumeGroup(struct SalvInfo *salvinfo, struct InodeSummary *isp, int nV
                    ip = allInodes + isp[i].index;
                    for (j = isp[i].nSpecialInodes; j < isp[i].nInodes; j++) {
                        namei_SetLinkCount(fdP, ip[j].inodeNumber, 1, 1);
+                       ip[j].linkCount = 1;
                    }
                }
            }