salvage: Zero root/readme vnodes before writing
authorAndrew Deason <adeason@sinenomine.net>
Thu, 22 Jul 2010 18:43:17 +0000 (13:43 -0500)
committerDerrick Brashear <shadow@dementia.org>
Thu, 22 Jul 2010 18:54:12 +0000 (11:54 -0700)
Previously we were writing out the root and readme vnodes with
uninitialized 'lock' structures, when we create a new root dir for
attaching orphans. Just use calloc so we ensure that everything is
zeroed before writing it out.

Change-Id: I3c7712254aaef8731be95ea63530af05438d96a6
Reviewed-on: http://gerrit.openafs.org/2469
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>

src/vol/vol-salvage.c

index 408bc5e..e273f40 100644 (file)
@@ -3472,7 +3472,7 @@ CreateReadme(VolumeDiskData *volHeader, IHandle_t *alinkH,
     }
 
     /* create the vnode and write it out */
-    rvnode = malloc(SIZEOF_SMALLDISKVNODE);
+    rvnode = calloc(1, SIZEOF_SMALLDISKVNODE);
     if (!rvnode) {
        Log("CreateRootDir: error alloc'ing memory\n");
        goto error;
@@ -3630,7 +3630,7 @@ CreateRootDir(VolumeDiskData *volHeader, IHandle_t *alinkH, VolumeId vid,
     DZap((void *)&rootdir->dirHandle);
 
     /* create the new root dir vnode */
-    rootvnode = malloc(SIZEOF_LARGEDISKVNODE);
+    rootvnode = calloc(1, SIZEOF_LARGEDISKVNODE);
     if (!rootvnode) {
        Log("CreateRootDir: malloc failed\n");
        goto error;