libafs: memset dirHeader->hashTable
authorAndrew Deason <adeason@sinenomine.net>
Thu, 9 Jun 2011 03:50:27 +0000 (22:50 -0500)
committerDerrick Brashear <shadow@dementix.org>
Mon, 23 Jan 2012 15:29:52 +0000 (07:29 -0800)
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.

Reviewed-on: http://gerrit.openafs.org/4829
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
(cherry picked from commit f091ace32e3045da396d577055dafd67888ff7ea)

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

src/afs/afs_dynroot.c

index 9a17bf1..d3215ba 100644 (file)
@@ -375,8 +375,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 ".." */
     afs_dynroot_addDirEnt(dirHeader, &curPage, &curChunk, ".", 1);