/*
* 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>
-RCSID
- ("$Header$");
-
-#include <sys/types.h>
-#ifdef AFS_NT40_ENV
-#include <fcntl.h>
-#else
-#include <sys/file.h>
-#include <netinet/in.h>
-#include <unistd.h>
-#endif
-#ifdef HAVE_STRING_H
-#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
-#ifdef AFS_SUN5_ENV
-#include <sys/fcntl.h>
-#endif
-#include <errno.h>
+#include <roken.h>
+
#include <rx/xdr.h>
#include <rx/rx.h>
-#include <stdio.h>
#include <afs/afsint.h>
#include <afs/nfs.h>
-#include <afs/assert.h>
+#include <afs/afs_assert.h>
#include <afs/dir.h>
#include <afs/ihandle.h>
+
#include "vol.h"
+#include "physio.h"
/* returns 0 on success, errno on failure */
int
{
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) {
- code = errno;
- FDH_REALLYCLOSE(fdP);
- return code;
- }
- code = FDH_READ(fdP, data, AFS_PAGESIZE);
- if (code != AFS_PAGESIZE) {
- if (code < 0)
+ nBytes = FDH_PREAD(fdP, data, AFS_PAGESIZE, ((afs_foff_t)block) * AFS_PAGESIZE);
+ if (nBytes != AFS_PAGESIZE) {
+ if (nBytes < 0)
code = errno;
else
code = EIO;
FdHandle_t *fdP;
extern int VolumeChanged;
int code;
+ ssize_t nBytes;
errno = 0;
code = errno;
return code;
}
- if (FDH_SEEK(fdP, block * AFS_PAGESIZE, SEEK_SET) < 0) {
- code = errno;
- FDH_REALLYCLOSE(fdP);
- return code;
- }
- code = FDH_WRITE(fdP, data, AFS_PAGESIZE);
- if (code != AFS_PAGESIZE) {
- if (code < 0)
+ nBytes = FDH_PWRITE(fdP, data, AFS_PAGESIZE, ((afs_foff_t)block) * AFS_PAGESIZE);
+ if (nBytes != AFS_PAGESIZE) {
+ if (nBytes < 0)
code = errno;
else
code = EIO;
* The handle needs to be dereferenced with the FidZap() routine.
*/
void
-SetSalvageDirHandle(DirHandle * dir, afs_int32 volume, afs_int32 device,
+SetSalvageDirHandle(DirHandle * dir, afs_uint32 volume, afs_int32 device,
Inode inode)
{
- private SalvageCacheCheck = 1;
+ private int SalvageCacheCheck = 1;
memset(dir, 0, sizeof(DirHandle));
dir->dirh_volume = volume;
}
void
-Die(char *msg)
+Die(const char *msg)
{
printf("%s\n", msg);
- assert(1 == 2);
+ osi_Panic("%s\n", msg);
}