vol, volser, and viced type fixes
[openafs.git] / src / vol / physio.c
index 7679567..8b5845a 100644 (file)
@@ -48,20 +48,21 @@ ReallyRead(DirHandle * file, int block, char *data)
 {
     FdHandle_t *fdP;
     int code;
+    ssize_t nBytes;
     errno = 0;
     fdP = IH_OPEN(file->dirh_handle);
     if (fdP == NULL) {
        code = errno;
        return code;
     }
-    if (FDH_SEEK(fdP, block * AFS_PAGESIZE, SEEK_SET) < 0) {
+    if (FDH_SEEK(fdP, ((afs_foff_t)block) * AFS_PAGESIZE, SEEK_SET) < 0) {
        code = errno;
        FDH_REALLYCLOSE(fdP);
        return code;
     }
-    code = FDH_READ(fdP, data, (afs_fsize_t) AFS_PAGESIZE);
-    if (code != AFS_PAGESIZE) {
-       if (code < 0)
+    nBytes = FDH_READ(fdP, data, (afs_fsize_t) AFS_PAGESIZE);
+    if (nBytes != AFS_PAGESIZE) {
+       if (nBytes < 0)
            code = errno;
        else
            code = EIO;
@@ -79,6 +80,7 @@ ReallyWrite(DirHandle * file, int block, char *data)
     FdHandle_t *fdP;
     extern int VolumeChanged;
     int code;
+    ssize_t nBytes;
 
     errno = 0;
 
@@ -87,14 +89,14 @@ ReallyWrite(DirHandle * file, int block, char *data)
        code = errno;
        return code;
     }
-    if (FDH_SEEK(fdP, block * AFS_PAGESIZE, SEEK_SET) < 0) {
+    if (FDH_SEEK(fdP, ((afs_foff_t)block) * AFS_PAGESIZE, SEEK_SET) < 0) {
        code = errno;
        FDH_REALLYCLOSE(fdP);
        return code;
     }
-    code = FDH_WRITE(fdP, data, (afs_fsize_t) AFS_PAGESIZE);
-    if (code != AFS_PAGESIZE) {
-       if (code < 0)
+    nBytes = FDH_WRITE(fdP, data, (afs_fsize_t) AFS_PAGESIZE);
+    if (nBytes != AFS_PAGESIZE) {
+       if (nBytes < 0)
            code = errno;
        else
            code = EIO;