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
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);
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);
class_signal_connection_failure(conn);
class_signal_connection_failure(conn);
+ 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");
#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
-#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