Skip to content
Snippets Groups Projects
Commit e513bc79 authored by Johann Lombardi's avatar Johann Lombardi
Browse files

Branch HEAD

b=17026
i=shadow
i=oleg

Description: (ptllnd_peer.c:557:kptllnd_peer_check_sends()) ASSERTION(!in_interrupt()) failed
Details: fix stack overflow in the distributed lock manager by defering export
         eviction after a failed ast to the elt thread instead of handling
         it in the dlm interpret routine.
parent 25d4f73b
No related branches found
No related tags found
No related merge requests found
...@@ -1436,6 +1436,13 @@ Description: Lustre GPF in {:ptlrpc:ptlrpc_server_free_request+373} ...@@ -1436,6 +1436,13 @@ Description: Lustre GPF in {:ptlrpc:ptlrpc_server_free_request+373}
Details : In case of memory pressure, list_del() can be called twice on Details : In case of memory pressure, list_del() can be called twice on
req->rq_history_list, causing a kernel oops. req->rq_history_list, causing a kernel oops.
Severity : normal
Bugzilla : 17026
Description: (ptllnd_peer.c:557:kptllnd_peer_check_sends()) ASSERTION(!in_interrupt()) failed
Details : fix stack overflow in the distributed lock manager by defering export
eviction after a failed ast to the elt thread instead of handling
it in the dlm interpret routine.
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
2007-08-10 Cluster File Systems, Inc. <info@clusterfs.com> 2007-08-10 Cluster File Systems, Inc. <info@clusterfs.com>
......
...@@ -486,7 +486,14 @@ static void ldlm_failed_ast(struct ldlm_lock *lock, int rc, ...@@ -486,7 +486,14 @@ static void ldlm_failed_ast(struct ldlm_lock *lock, int rc,
if (obd_dump_on_timeout) if (obd_dump_on_timeout)
libcfs_debug_dumplog(); libcfs_debug_dumplog();
#ifdef __KERNEL__
spin_lock_bh(&waiting_locks_spinlock);
list_add(&lock->l_pending_chain, &expired_lock_thread.elt_expired_locks);
cfs_waitq_signal(&expired_lock_thread.elt_waitq);
spin_unlock_bh(&waiting_locks_spinlock);
#else
class_fail_export(lock->l_export); class_fail_export(lock->l_export);
#endif
} }
static int ldlm_handle_ast_error(struct ldlm_lock *lock, static int ldlm_handle_ast_error(struct ldlm_lock *lock,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment