- /* Copyright (C) 1995, 1989, 1998 Transarc Corporation - All rights reserved */
/*
- * (C) COPYRIGHT IBM CORPORATION 1987, 1988
- * LICENSED MATERIALS - PROPERTY OF IBM
+ * 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
*/
+
/*
* afs_init.c - initialize AFS client.
*
/* Exported variables */
struct osi_dev cacheDev; /*Cache device*/
afs_int32 cacheInfoModTime; /*Last time cache info modified*/
-#if defined(AFS_OSF_ENV) || defined(AFS_DEC_ENV)
+#if defined(AFS_OSF_ENV) || defined(AFS_DEC_ENV) || defined(AFS_DARWIN_ENV)
struct mount *afs_cacheVfsp=0;
#elif defined(AFS_LINUX20_ENV)
struct super_block *afs_cacheSBp = 0;
#else
code = gop_lookupname(afile, AFS_UIOSYS, 0, (struct vnode **) 0, &filevp);
if (code) return ENOENT;
-#if defined(AFS_SGI62_ENV) || defined(AFS_HAVE_VXFS)
- fce.inode = volumeInode = VnodeToIno(filevp);
-#else
- fce.inode = volumeInode = VTOI(filevp)->i_number;
-#endif
+ fce.inode = volumeInode = afs_vnodeToInumber(filevp);
#ifdef AFS_DEC_ENV
grele(filevp);
#else
TO_KERNEL_SPACE();
}
#else
+#ifdef AFS_DARWIN_ENV
+ if (!VFS_STATFS(filevp->v_mount, &st, current_proc()))
+#else
if (!VFS_STATFS(filevp->v_vfsp, &st))
+#endif /* AFS_DARWIN_ENV */
#endif /* AFS_LINUX20_ENV */
#endif /* AIX41 */
#endif /* OSF */
#endif
}
#ifdef AFS_LINUX20_ENV
- cacheInode = filevp->i_ino;
- afs_cacheSBp = filevp->i_sb;
+ cacheInode = filevp->i_ino;
+ afs_cacheSBp = filevp->i_sb;
#else
-#if defined(AFS_SGI62_ENV) || defined(AFS_HAVE_VXFS)
+#if defined(AFS_SGI62_ENV) || defined(AFS_HAVE_VXFS) || defined(AFS_DARWIN_ENV)
afs_InitDualFSCacheOps(filevp);
- cacheInode = VnodeToIno(filevp);
- cacheDev.dev = VnodeToDev(filevp);
-#else
- cacheInode = VTOI(filevp)->i_number;
- cacheDev.dev = VTOI(filevp)->i_dev;
#endif
+ cacheInode = afs_vnodeToInumber(filevp);
+ cacheDev.dev = afs_vnodeToDev(filevp);
afs_cacheVfsp = filevp->v_vfsp;
#endif /* AFS_LINUX20_ENV */
AFS_RELE((struct vnode *)filevp);