Print this page
re #8564, rb4224 "mutex_enter: bad mutex" panic when under heavy load
*** 16,25 ****
--- 16,26 ----
* fields enclosed by brackets "[]" replaced with your own identifying
* information: Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
*/
+
/*
* Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright 2013, Nexenta Systems, Inc. All rights reserved.
*/
*** 1246,1256 ****
mutex_enter(&ptask->pt_sess->ps_mutex);
mutex_enter(&ptask->pt_mutex);
if (avl_find(&ptask->pt_sess->ps_task_list, ptask, &where) == NULL) {
pppt_task_update_state(ptask, PTS_ACTIVE);
! /* Manually increment refcnt, sincd we hold the mutex... */
ptask->pt_refcnt++;
avl_insert(&ptask->pt_sess->ps_task_list, ptask, where);
mutex_exit(&ptask->pt_mutex);
mutex_exit(&ptask->pt_sess->ps_mutex);
return (PPPT_STATUS_SUCCESS);
--- 1247,1257 ----
mutex_enter(&ptask->pt_sess->ps_mutex);
mutex_enter(&ptask->pt_mutex);
if (avl_find(&ptask->pt_sess->ps_task_list, ptask, &where) == NULL) {
pppt_task_update_state(ptask, PTS_ACTIVE);
! /* Manually increment refcnt, since we hold the mutex... */
ptask->pt_refcnt++;
avl_insert(&ptask->pt_sess->ps_task_list, ptask, where);
mutex_exit(&ptask->pt_mutex);
mutex_exit(&ptask->pt_sess->ps_mutex);
return (PPPT_STATUS_SUCCESS);