]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
Linux: use DEFINE_MUTEX for afs_linux_alloc_sem on newer kernels
authorAlejandro R. Sedeño <asedeno@mit.edu>
Fri, 5 Nov 2010 21:24:43 +0000 (17:24 -0400)
committerDerrick Brashear <shadow@dementia.org>
Fri, 17 Dec 2010 15:58:16 +0000 (07:58 -0800)
DECLARE_MUTEX is gone as of 2.6.37; afs_global_lock switches from
DECLARE_MUTEX to DEFINE_MUTEX at 2.6.16, so do the same here.

(cherry picked from commit f9409fcdffa594aff9530038a5ac81a2495da3b6)
Signed-off-by: Alejandro R. Sedeño <asedeno@mit.edu>
Reviewed-on: http://gerrit.openafs.org/3273
Reviewed-by: Marc Dionne <marc.c.dionne@gmail.com>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Tested-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Change-Id: I3d72f56db7ebaf40f1cdcdbf9f73783cb9d71676
Reviewed-on: http://gerrit.openafs.org/3539
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
src/afs/LINUX/osi_alloc.c

index ae884539d7dcabcf8bdded39ad3598d6d7683dd7..dab25a7163ea59af5b6d1ae3e0526924e6edaa5a 100644 (file)
@@ -284,7 +284,9 @@ get_hash_stats()
 
 /************** Linux memory allocator interface functions **********/
 
-#if defined(AFS_LINUX24_ENV)
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,16)
+DEFINE_MUTEX(afs_linux_alloc_sem);
+#elif defined(AFS_LINUX24_ENV)
 DECLARE_MUTEX(afs_linux_alloc_sem);
 #else
 struct semaphore afs_linux_alloc_sem = MUTEX;
@@ -303,7 +305,7 @@ osi_linux_alloc(unsigned int asize, int drop_glock)
        return new;
     }
 
-    down(&afs_linux_alloc_sem);
+    mutex_lock(&afs_linux_alloc_sem);
 
     /* allocator hasn't been initialized yet */
     if (allocator_init == 0) {
@@ -333,7 +335,7 @@ osi_linux_alloc(unsigned int asize, int drop_glock)
        get_hash_stats();
     }
   error:
-    up(&afs_linux_alloc_sem);
+    mutex_unlock(&afs_linux_alloc_sem);
     return MEMADDR(new);
 
   free_error:
@@ -353,7 +355,7 @@ osi_linux_free(void *addr)
 {
     struct osi_linux_mem lmem, *lmp;
 
-    down(&afs_linux_alloc_sem);
+    mutex_lock(&afs_linux_alloc_sem);
 
     lmem.chunk = addr;
     /* remove this chunk from our hash table */
@@ -367,7 +369,7 @@ osi_linux_free(void *addr)
        printf("osi_linux_free: failed to remove chunk from hashtable\n");
     }
 
-    up(&afs_linux_alloc_sem);
+    mutex_unlock(&afs_linux_alloc_sem);
 }
 
 /* osi_linux_free_afs_memory() - free all chunks of memory allocated.
@@ -375,7 +377,7 @@ osi_linux_free(void *addr)
 void
 osi_linux_free_afs_memory(void)
 {
-    down(&afs_linux_alloc_sem);
+    mutex_lock(&afs_linux_alloc_sem);
 
     if (allocator_init) {
        /* iterate through all elements in the hash table and free both 
@@ -392,7 +394,7 @@ osi_linux_free_afs_memory(void)
        /* change the state so that the allocator is now uninitialized. */
        allocator_init = 0;
     }
-    up(&afs_linux_alloc_sem);
+    mutex_unlock(&afs_linux_alloc_sem);
 }
 
 /* osi_linux_verify_alloced_memory(): verify all chunks of alloced memory in
@@ -401,7 +403,7 @@ osi_linux_free_afs_memory(void)
 void
 osi_linux_verify_alloced_memory()
 {
-    down(&afs_linux_alloc_sem);
+    mutex_lock(&afs_linux_alloc_sem);
 
     /* count of times hash_verify was called. reset it to 0 before iteration */
     afs_linux_hash_verify_count = 0;
@@ -416,6 +418,6 @@ osi_linux_verify_alloced_memory()
             afs_linux_hash_verify_count - afs_linux_cur_allocs);
     }
 
-    up(&afs_linux_alloc_sem);
+    mutex_unlock(&afs_linux_alloc_sem);
     return;
 }