libafs: memset dirHeader->hashTable
authorAndrew Deason <adeason@sinenomine.net>
Thu, 9 Jun 2011 03:50:27 +0000 (22:50 -0500)
committerDerrick Brashear <shadow@dementia.org>
Thu, 9 Jun 2011 18:52:15 +0000 (11:52 -0700)
Clear dirHeader->hashTable via memset instead of via a loop. This is
more efficient, and avoids the loop getting optimized into an unusable
_memset call on recent versions of Solaris Studio when building for
the kernel.

Thanks to Jeff Blaine for reporting the issue with Solaris Studio.

Change-Id: Ibaa5140d510c2df7e1129352a6677594785b42b4
Reviewed-on: http://gerrit.openafs.org/4829
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementia.org>

src/afs/afs_dynroot.c

index adf17bb..9ca8131 100644 (file)
@@ -407,8 +407,7 @@ afs_RebuildDynroot(void)
     dirHeader->alloMap[0] = EPP - DHE - 1;
     for (i = 1; i < MAXPAGES; i++)
        dirHeader->alloMap[i] = EPP;
-    for (i = 0; i < NHASHENT; i++)
-       dirHeader->hashTable[i] = 0;
+    memset(dirHeader->hashTable, 0, NHASHENT * sizeof(dirHeader->hashTable[0]));
 
     /* Install ".", "..", and the dynamic mount directory */
     afs_dynroot_addDirEnt(dirHeader, &curPage, &curChunk, ".", 1);
@@ -507,8 +506,7 @@ afs_RebuildDynrootMount(void)
     dirHeader->alloMap[0] = EPP - DHE - 1;
     for (i = 1; i < MAXPAGES; i++)
        dirHeader->alloMap[i] = EPP;
-    for (i = 0; i < NHASHENT; i++)
-       dirHeader->hashTable[i] = 0;
+    memset(dirHeader->hashTable, 0, NHASHENT * sizeof(dirHeader->hashTable[0]));
 
     /* Install "." and ".." */
     afs_dynroot_addDirEnt(dirHeader, &curPage, &curChunk, ".", 1);