From 9e06544249bf6a536c3f3f26048f6809b36b0772 Mon Sep 17 00:00:00 2001 From: Chas Williams Date: Thu, 1 Aug 2002 17:11:35 +0000 Subject: [PATCH] linux-alloc-dont-drop-what-you-dont-have-20020801 avoid trying to drop a glock we don't have --- src/afs/LINUX/osi_alloc.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/afs/LINUX/osi_alloc.c b/src/afs/LINUX/osi_alloc.c index 9077db83ec..a89a74d186 100644 --- a/src/afs/LINUX/osi_alloc.c +++ b/src/afs/LINUX/osi_alloc.c @@ -80,6 +80,7 @@ static void *linux_alloc(unsigned int asize, int drop_glock) { void *new = NULL; int max_retry = 10; + int haveGlock = ISAFS_GLOCK(); /* if we can use kmalloc use it to allocate the required memory. */ while(!new && max_retry) @@ -106,9 +107,9 @@ static void *linux_alloc(unsigned int asize, int drop_glock) #else current->state = TASK_INTERRUPTIBLE; #endif - if (drop_glock) AFS_GUNLOCK(); + if (drop_glock && haveGlock) AFS_GUNLOCK(); schedule_timeout(HZ); - if (drop_glock) AFS_GLOCK(); + if (drop_glock && haveGlock) AFS_GLOCK(); #ifdef set_current_state set_current_state(TASK_RUNNING); #else