vol: Tidy header includes
[openafs.git] / src / vol / clone.c
index 9f4aedd..0b04756 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * Copyright 2000, International Business Machines Corporation and others.
  * All Rights Reserved.
- * 
+ *
  * This software has been released under the terms of the IBM Public
  * License.  For details, see the LICENSE file in the top-level source
  * directory or online at http://www.openafs.org/dl/license10.html
 #include <afsconfig.h>
 #include <afs/param.h>
 
+#include <roken.h>
 
-#include <sys/types.h>
-#include <stdio.h>
-#ifdef AFS_PTHREAD_ENV
-#include <assert.h>
-#else /* AFS_PTHREAD_ENV */
-#include <afs/assert.h>
-#endif /* AFS_PTHREAD_ENV */
 #ifdef AFS_NT40_ENV
-#include <fcntl.h>
 #include <windows.h>
 #include <winbase.h>
-#include <io.h>
-#include <time.h>
-#else
-#include <sys/file.h>
-#include <sys/time.h>
-#include <unistd.h>
 #endif
-#include <string.h>
-#include <errno.h>
-#include <sys/stat.h>
 
+#include <afs/afs_assert.h>
 #include <rx/xdr.h>
 #include <afs/afsint.h>
+#include <afs/afssyscalls.h>
+
 #include "nfs.h"
 #include "lwp.h"
 #include "lock.h"
-#include <afs/afssyscalls.h>
 #include "ihandle.h"
 #include "vnode.h"
 #include "volume.h"
 
 int (*vol_PollProc) (void) = 0;        /* someone must init this */
 
-#define ERROR_EXIT(code) {error = code; goto error_exit;}
+#define ERROR_EXIT(code) do { \
+    error = code; \
+    goto error_exit; \
+} while (0)
 
 /* parameters for idec call - this could just be an IHandle_t, but leaving
  * open the possibility of decrementing the special files as well.
@@ -91,7 +80,7 @@ ci_AddItem(struct clone_head *ah, Inode aino)
        ti = (struct clone_items *)malloc(sizeof(struct clone_items));
        if (!ti) {
            Log("ci_AddItem: malloc failed\n");
-           assert(0);
+           osi_Panic("ci_AddItem: malloc failed\n");
        }
        ti->nitems = 0;
        ti->next = (struct clone_items *)0;
@@ -171,9 +160,10 @@ DoCloneIndex(Volume * rwvp, Volume * clvp, VnodeClass class, int reclone)
     Inode clinode;
     struct clone_head decHead;
     struct clone_rock decRock;
-    afs_int32 offset = 0;
+    afs_foff_t offset = 0;
     afs_int32 dircloned, inodeinced;
     afs_int32 filecount = 0, diskused = 0;
+    afs_ino_str_t stmp;
 
     struct VnodeClassInfo *vcp = &VnodeClassInfo[class];
     int ReadWriteOriginal = VolumeWriteable(rwvp);
@@ -193,7 +183,7 @@ DoCloneIndex(Volume * rwvp, Volume * clvp, VnodeClass class, int reclone)
     rwfile = FDH_FDOPEN(rwFd, ReadWriteOriginal ? "r+" : "r");
     if (!rwfile)
        ERROR_EXIT(EIO);
-    STREAM_SEEK(rwfile, vcp->diskSize, 0);     /* Will fail if no vnodes */
+    STREAM_ASEEK(rwfile, vcp->diskSize);       /* Will fail if no vnodes */
 
     /* Open the clone volume's index file and seek to beginning */
     IH_COPY(clHout, clvp->vnodeIndex[class].handle);
@@ -203,7 +193,7 @@ DoCloneIndex(Volume * rwvp, Volume * clvp, VnodeClass class, int reclone)
     clfileout = FDH_FDOPEN(clFdOut, "a");
     if (!clfileout)
        ERROR_EXIT(EIO);
-    code = STREAM_SEEK(clfileout, vcp->diskSize, 0);
+    code = STREAM_ASEEK(clfileout, vcp->diskSize);
     if (code)
        ERROR_EXIT(EIO);
 
@@ -219,7 +209,7 @@ DoCloneIndex(Volume * rwvp, Volume * clvp, VnodeClass class, int reclone)
        clfilein = FDH_FDOPEN(clFdIn, "r");
        if (!clfilein)
            ERROR_EXIT(EIO);
-       STREAM_SEEK(clfilein, vcp->diskSize, 0);        /* Will fail if no vnodes */
+       STREAM_ASEEK(clfilein, vcp->diskSize);  /* Will fail if no vnodes */
     }
 
     /* Initialize list of inodes to nuke */
@@ -260,7 +250,7 @@ DoCloneIndex(Volume * rwvp, Volume * clvp, VnodeClass class, int reclone)
                if (IH_INC(V_linkHandle(rwvp), rwinode, V_parentId(rwvp)) ==
                    -1) {
                    Log("IH_INC failed: %"AFS_PTR_FMT", %s, %u errno %d\n",
-                       V_linkHandle(rwvp), PrintInode(NULL, rwinode),
+                       V_linkHandle(rwvp), PrintInode(stmp, rwinode),
                        V_parentId(rwvp), errno);
                    VForceOffline(rwvp);
                    ERROR_EXIT(EIO);
@@ -271,7 +261,7 @@ DoCloneIndex(Volume * rwvp, Volume * clvp, VnodeClass class, int reclone)
            /* If a directory, mark vnode in old volume as cloned */
            if ((rwvnode->type == vDirectory) && ReadWriteOriginal) {
 #ifdef DVINC
-               /* 
+               /*
                 * It is my firmly held belief that immediately after
                 * copy-on-write, the two directories can be identical.
                 * If the new copy is changed (presumably, that is the very
@@ -286,14 +276,14 @@ DoCloneIndex(Volume * rwvp, Volume * clvp, VnodeClass class, int reclone)
                rwvnode->dataVersion++;
 #endif /* DVINC */
                rwvnode->cloned = 1;
-               code = STREAM_SEEK(rwfile, offset, 0);
+               code = STREAM_ASEEK(rwfile, offset);
                if (code == -1)
                    goto clonefailed;
                code = STREAM_WRITE(rwvnode, vcp->diskSize, 1, rwfile);
                if (code != 1)
                    goto clonefailed;
                dircloned = 1;
-               code = STREAM_SEEK(rwfile, offset + vcp->diskSize, 0);
+               code = STREAM_ASEEK(rwfile, offset + vcp->diskSize);
                if (code == -1)
                    goto clonefailed;
 #ifdef DVINC
@@ -313,7 +303,7 @@ DoCloneIndex(Volume * rwvp, Volume * clvp, VnodeClass class, int reclone)
                if (IH_DEC(V_linkHandle(rwvp), rwinode, V_parentId(rwvp)) ==
                    -1) {
                    Log("IH_DEC failed: %"AFS_PTR_FMT", %s, %u errno %d\n",
-                       V_linkHandle(rwvp), PrintInode(NULL, rwinode),
+                       V_linkHandle(rwvp), PrintInode(stmp, rwinode),
                        V_parentId(rwvp), errno);
                    VForceOffline(rwvp);
                    ERROR_EXIT(EIO);
@@ -322,7 +312,7 @@ DoCloneIndex(Volume * rwvp, Volume * clvp, VnodeClass class, int reclone)
            /* And if the directory was marked clone, unmark it */
            if (dircloned) {
                rwvnode->cloned = 0;
-               if (STREAM_SEEK(rwfile, offset, 0) != -1)
+               if (STREAM_ASEEK(rwfile, offset) != -1)
                    (void)STREAM_WRITE(rwvnode, vcp->diskSize, 1, rwfile);
            }
            ERROR_EXIT(EIO);
@@ -340,7 +330,7 @@ DoCloneIndex(Volume * rwvp, Volume * clvp, VnodeClass class, int reclone)
 
     /* Clean out any junk at end of clone file */
     if (reclone) {
-       STREAM_SEEK(clfilein, offset, 0);
+       STREAM_ASEEK(clfilein, offset);
        while (STREAM_READ(clvnode, vcp->diskSize, 1, clfilein) == 1) {
            if (clvnode->type != vNull && VNDISK_GET_INO(clvnode) != 0) {
                ci_AddItem(&decHead, VNDISK_GET_INO(clvnode));