Whamcloud - gitweb
I really broke the tree last night. I guess nobody has been using it much
authorpschwan <pschwan>
Fri, 18 Oct 2002 22:06:16 +0000 (22:06 +0000)
committerpschwan <pschwan>
Fri, 18 Oct 2002 22:06:16 +0000 (22:06 +0000)
today.

- Remove a bogus assertion in ldlm_completion_ast
- Add a class 9 hack in ldlm_destroy_lock to get things working
- LINUX_VERSION_CODE requires version.h

lustre/ldlm/ldlm_lock.c
lustre/ldlm/ldlm_request.c
lustre/llite/dir.c

index bb3119b..8673d6a 100644 (file)
@@ -211,7 +211,7 @@ void ldlm_lock_destroy(struct ldlm_lock *lock)
         lock->l_flags |= LDLM_FL_DESTROYED;
 
         /* Wake anyone waiting for this lock */
         lock->l_flags |= LDLM_FL_DESTROYED;
 
         /* Wake anyone waiting for this lock */
-        if (lock->l_completion_ast)
+        if (lock->l_export && lock->l_completion_ast)
                 lock->l_completion_ast(lock, 0);
 
         l_unlock(&lock->l_resource->lr_namespace->ns_lock);
                 lock->l_completion_ast(lock, 0);
 
         l_unlock(&lock->l_resource->lr_namespace->ns_lock);
index cf820ea..af7f9a9 100644 (file)
@@ -44,9 +44,8 @@ static int expired_completion_wait(void *data)
                 CERROR("lock %p has NULL obd\n", lock);
         else if (!(conn = obd->u.cli.cl_import.imp_connection))
                 CERROR("lock %p has NULL connection\n", lock);
                 CERROR("lock %p has NULL obd\n", lock);
         else if (!(conn = obd->u.cli.cl_import.imp_connection))
                 CERROR("lock %p has NULL connection\n", lock);
-        else {
+        else
                 class_signal_connection_failure(conn);
                 class_signal_connection_failure(conn);
-        }
         RETURN(0);
 }
 
         RETURN(0);
 }
 
@@ -75,16 +74,17 @@ int ldlm_completion_ast(struct ldlm_lock *lock, int flags)
         int rc = 0;
         ENTRY;
 
         int rc = 0;
         ENTRY;
 
+        if (flags == LDLM_FL_WAIT_NOREPROC)
+                goto noreproc;
+
         if (flags == 0) {
                 wake_up(&lock->l_waitq);
                 RETURN(0);
         }
 
         if (flags == 0) {
                 wake_up(&lock->l_waitq);
                 RETURN(0);
         }
 
-        if (flags == LDLM_FL_WAIT_NOREPROC)
-                goto noreproc;
-
-        LASSERT(flags & (LDLM_FL_BLOCK_WAIT | LDLM_FL_BLOCK_GRANTED |
-                         LDLM_FL_BLOCK_CONV));
+        if (!(flags & (LDLM_FL_BLOCK_WAIT | LDLM_FL_BLOCK_GRANTED |
+                       LDLM_FL_BLOCK_CONV)))
+                RETURN(0);
 
         LDLM_DEBUG(lock, "client-side enqueue returned a blocked lock, "
                    "sleeping");
 
         LDLM_DEBUG(lock, "client-side enqueue returned a blocked lock, "
                    "sleeping");
index 987f1dd..aa6dd50 100644 (file)
 #include <linux/mm.h>
 #include <linux/smp_lock.h>
 #include <asm/uaccess.h>
 #include <linux/mm.h>
 #include <linux/smp_lock.h>
 #include <asm/uaccess.h>
+#include <linux/version.h>
 #if (LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0))
 #if (LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0))
-#include <linux/locks.h>        // for wait_on_buffer
+# include <linux/locks.h>        // for wait_on_buffer
 #else
 #else
-#include <linux/buffer_head.h>  // for wait_on_buffer
+# include <linux/buffer_head.h>  // for wait_on_buffer
 #endif
 
 #define DEBUG_SUBSYSTEM S_LLITE
 #endif
 
 #define DEBUG_SUBSYSTEM S_LLITE