{
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_flags = VFS_TBLTHREADSAFE|VFS_TBLNOTYPENUM;
if (vfs_fsadd(&afs_vfsentry, &afs_vfstable)) {
printf("AFS: vfs_fsadd failed. aborting\n");
+ MUTEX_FINISH();
+ lck_mtx_free(afs_global_lock, openafs_lck_grp);
return KERN_FAILURE;
}
afs_cdev.d_open = &afs_cdev_nop_openclose;
if (afs_cdev_major == -1) {
printf("AFS: cdevsw_add failed. aborting\n");
vfs_fsremove(afs_vfstable);
+ MUTEX_FINISH();
+ lck_mtx_free(afs_global_lock, openafs_lck_grp);
return KERN_FAILURE;
}
afs_cdev_devfs_handle = devfs_make_node(makedev(afs_cdev_major, 0),
sysent[AFS_SYSCALL].sy_funnel = KERNEL_FUNNEL;
#endif
#endif
-#ifdef AFS_DARWIN80_ENV
- MUTEX_SETUP();
- afs_global_lock = lck_mtx_alloc_init(openafs_lck_grp, 0);
-#endif
return KERN_SUCCESS;
}
#endif /* defined(AFS_DARWIN70_ENV) */
lck_grp_t * openafs_lck_grp;
-lck_grp_t * openafs_rw_grp;
static lck_grp_attr_t * openafs_lck_grp_attr;
void rx_kmutex_setup(void) {
openafs_lck_grp_attr= lck_grp_attr_alloc_init();
openafs_lck_grp = lck_grp_alloc_init("openafs", openafs_lck_grp_attr);
lck_grp_attr_free(openafs_lck_grp_attr);
- openafs_rw_grp = lck_grp_alloc_init("openafs-rw", openafs_lck_grp_attr);
- lck_grp_attr_free(openafs_lck_grp_attr);
}
void rx_kmutex_finish(void) {
lck_grp_free(openafs_lck_grp);
- lck_grp_free(openafs_rw_grp);
}
#endif