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);