#include "afs/afs_assert.h"
#include <limits.h>
-#ifndef AFS_NT40_ENV
-#ifdef O_LARGEFILE
-#define afs_stat stat64
-#define afs_fstat fstat64
-#else /* !O_LARGEFILE */
-#define afs_stat stat
-#define afs_fstat fstat
-#endif /* !O_LARGEFILE */
-#endif /* AFS_NT40_ENV */
-
#ifdef AFS_PTHREAD_ENV
pthread_once_t ih_glock_once = PTHREAD_ONCE_INIT;
pthread_mutex_t ih_glock_mutex;
fdP->fd_refcnt--;
if (fdP->fd_refcnt == 0) {
- /* Put this descriptor back into the cache */
- fdP->fd_status = FD_HANDLE_OPEN;
- DLL_INSERT_TAIL(fdP, fdLruHead, fdLruTail, fd_next, fd_prev);
+ /* Put this descriptor back into the cache */
+ fdP->fd_status = FD_HANDLE_OPEN;
+ DLL_INSERT_TAIL(fdP, fdLruHead, fdLruTail, fd_next, fd_prev);
}
/* If this is not the only reference to the Inode then we can decrement
fdP->fd_refcnt--;
if (fdP->fd_refcnt == 0) {
- DLL_DELETE(fdP, ihP->ih_fdhead, ihP->ih_fdtail, fd_ihnext, fd_ihprev);
- DLL_INSERT_TAIL(fdP, fdAvailHead, fdAvailTail, fd_next, fd_prev);
+ DLL_DELETE(fdP, ihP->ih_fdhead, ihP->ih_fdtail, fd_ihnext, fd_ihprev);
+ DLL_INSERT_TAIL(fdP, fdAvailHead, fdAvailTail, fd_next, fd_prev);
- fdP->fd_status = FD_HANDLE_AVAIL;
- fdP->fd_refcnt = 0;
- fdP->fd_ih = NULL;
- fdP->fd_fd = INVALID_FD;
+ fdP->fd_status = FD_HANDLE_AVAIL;
+ fdP->fd_refcnt = 0;
+ fdP->fd_ih = NULL;
+ fdP->fd_fd = INVALID_FD;
}
/* All the file descriptor handles have been closed; reset
}
if (fdP->fd_refcnt == 0) {
- IH_UNLOCK;
- OS_CLOSE(closeFd);
- IH_LOCK;
- fdInUseCount -= 1;
+ IH_UNLOCK;
+ OS_CLOSE(closeFd);
+ IH_LOCK;
+ fdInUseCount -= 1;
}
/* If this is not the only reference to the Inode then we can decrement
ihP->ih_refcnt++; /* must not disappear over unlock */
if (ihP->ih_synced) {
FdHandle_t *fdP;
+ ihP->ih_synced = 0;
IH_UNLOCK;
fdP = IH_OPEN(ihP);
}
osi_Assert(ihP->ih_refcnt > 0);
- ihP->ih_synced = 0;
ih_fdclose(ihP);
return -1;
return size.QuadPart;
#else
- struct afs_stat status;
+ struct afs_stat_st status;
if (afs_fstat(fd, &status) < 0)
return -1;
return status.st_size;