OSX lock initialization cleanup
authorDerrick Brashear <shadow@dementia.org>
Tue, 21 Jul 2009 21:09:39 +0000 (17:09 -0400)
committerDerrick Brashear <shadow@dementia.org>
Tue, 21 Jul 2009 22:11:50 +0000 (15:11 -0700)
Move GLOCK creation before other things at modload time. Also
remove unused rwlock support from rx kmutex package.

Reviewed-on: http://gerrit.openafs.org/http://gerrit.openafs.org/170
Reviewed-by: Simon Wilkinson <sxw@inf.ed.ac.uk>
Tested-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Derrick Brashear <shadow@dementia.org>

src/afs/DARWIN/osi_module.c
src/rx/DARWIN/rx_kmutex.c

index b4db37c..77bc0e0 100644 (file)
@@ -46,6 +46,8 @@ afs_modload(struct kmod_info *ki, void *data)
 {
     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;
@@ -55,6 +57,8 @@ afs_modload(struct kmod_info *ki, void *data)
     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;
@@ -64,6 +68,8 @@ afs_modload(struct kmod_info *ki, void *data)
     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),
@@ -94,10 +100,6 @@ afs_modload(struct kmod_info *ki, void *data)
     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;
 }
 
index db3d857..c502536 100644 (file)
@@ -33,7 +33,6 @@
 #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();
@@ -42,13 +41,10 @@ void rx_kmutex_setup(void) {
     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