From d18ff03b59cf26423795f735decdcaf13097c446 Mon Sep 17 00:00:00 2001 From: Derrick Brashear Date: Thu, 11 Aug 2011 10:43:16 -0400 Subject: [PATCH] macos: axe static vfs_fsentry for whatever reason, lion 32 bit doesn't like it when this is static. fine, so it's not static now. Change-Id: Ia9fe6d96615c7fa816f4a88b794faa6ee7e1d010 Reviewed-on: http://gerrit.openafs.org/5206 Reviewed-by: Derrick Brashear Tested-by: BuildBot --- src/afs/DARWIN/osi_module.c | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/src/afs/DARWIN/osi_module.c b/src/afs/DARWIN/osi_module.c index 3ed61f336..020518bb0 100644 --- a/src/afs/DARWIN/osi_module.c +++ b/src/afs/DARWIN/osi_module.c @@ -5,14 +5,26 @@ #include "afsincludes.h" #define MYBUNDLEID "org.openafs.filesystems.afs" +extern struct vfsops afs_vfsops; + #ifdef AFS_DARWIN80_ENV static vfstable_t afs_vfstable; -static struct vfs_fsentry afs_vfsentry; extern struct vnodeopv_desc afs_vnodeop_opv_desc; extern struct vnodeopv_desc afs_dead_vnodeop_opv_desc; static struct vnodeopv_desc *afs_vnodeop_opv_desc_list[2] = { &afs_vnodeop_opv_desc, &afs_dead_vnodeop_opv_desc }; +struct vfs_fsentry afs_vfsentry = { + &afs_vfsops, + 2, + afs_vnodeop_opv_desc_list, + 0, + "afs", + VFS_TBLNOTYPENUM|VFS_TBLTHREADSAFE|VFS_TBL64BITREADY, + NULL, + NULL, +}; + #include #include #define seltrue eno_select @@ -28,7 +40,6 @@ struct vfsconf afs_vfsconf; #endif #include -extern struct vfsops afs_vfsops; extern struct mount *afs_globalVFS; extern int Afs_xsetgroups(); @@ -38,18 +49,15 @@ extern int maxvfsconf; kern_return_t afs_modload(struct kmod_info *kmod_info, void *data) { + int ret; osi_Init(); #ifdef AFS_DARWIN80_ENV MUTEX_SETUP(); afs_global_lock = lck_mtx_alloc_init(openafs_lck_grp, 0); - memset(&afs_vfsentry, 0, sizeof(struct vfs_fsentry)); - strcpy(afs_vfsentry.vfe_fsname, "afs"); - afs_vfsentry.vfe_vfsops = &afs_vfsops; - afs_vfsentry.vfe_vopcnt = 2; - afs_vfsentry.vfe_opvdescs = afs_vnodeop_opv_desc_list; - afs_vfsentry.vfe_flags = VFS_TBLTHREADSAFE|VFS_TBLNOTYPENUM|VFS_TBL64BITREADY; - if (vfs_fsadd(&afs_vfsentry, &afs_vfstable)) { - printf("AFS: vfs_fsadd failed. aborting\n"); + + if (ret = vfs_fsadd(&afs_vfsentry, &afs_vfstable)) { + printf("AFS: vfs_fsadd failed. aborting: %d\n", ret); + afs_vfstable = NULL; goto fsadd_out; } afs_cdev.d_open = &afs_cdev_nop_openclose; -- 2.39.5