From b17c71d67a06c43d32eedb862f84a3e8e518ac44 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Alejandro=20R=2E=20Sede=C3=B1o?= Date: Fri, 5 Nov 2010 17:24:43 -0400 Subject: [PATCH] Linux: use DEFINE_MUTEX for afs_linux_alloc_sem on newer kernels MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 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. Signed-off-by: Alejandro R. Sedeño Reviewed-on: http://gerrit.openafs.org/3273 Reviewed-by: Marc Dionne Tested-by: BuildBot Tested-by: Derrick Brashear Reviewed-by: Derrick Brashear (cherry picked from commit f9409fcdffa594aff9530038a5ac81a2495da3b6) Change-Id: If14d34183d8a28232f5f38fbe807c23dce1abf1b Reviewed-on: http://gerrit.openafs.org/3287 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear --- src/afs/LINUX/osi_alloc.c | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/src/afs/LINUX/osi_alloc.c b/src/afs/LINUX/osi_alloc.c index b10bbabf5..89a7bf861 100644 --- a/src/afs/LINUX/osi_alloc.c +++ b/src/afs/LINUX/osi_alloc.c @@ -271,7 +271,11 @@ get_hash_stats(void) /************** Linux memory allocator interface functions **********/ +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,16) +DEFINE_MUTEX(afs_linux_alloc_sem); +#else DECLARE_MUTEX(afs_linux_alloc_sem); +#endif void * osi_linux_alloc(unsigned int asize, int drop_glock) @@ -286,7 +290,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) { @@ -316,7 +320,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: @@ -336,7 +340,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 */ @@ -351,7 +355,7 @@ osi_linux_free(void *addr) BUG(); } - up(&afs_linux_alloc_sem); + mutex_unlock(&afs_linux_alloc_sem); } /* osi_linux_free_afs_memory() - free all chunks of memory allocated. @@ -359,7 +363,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 @@ -376,7 +380,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 @@ -385,7 +389,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; @@ -400,6 +404,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; } -- 2.39.5