Fix maxinfo hang
dcb_count_by_usage did not iterate the list properly and would get stuck on the first inactive DCB. Since this function is only called by maxinfo, it would be the only one to get stuck.
This commit is contained in:
parent
0aec0c483c
commit
3e08c248b9
@ -2970,46 +2970,46 @@ dcb_count_by_usage(DCB_USAGE usage)
|
||||
{
|
||||
if (dcb->dcb_is_in_use)
|
||||
{
|
||||
switch (usage)
|
||||
{
|
||||
case DCB_USAGE_CLIENT:
|
||||
if (DCB_ROLE_CLIENT_HANDLER == dcb->dcb_role)
|
||||
switch (usage)
|
||||
{
|
||||
case DCB_USAGE_CLIENT:
|
||||
if (DCB_ROLE_CLIENT_HANDLER == dcb->dcb_role)
|
||||
{
|
||||
rval++;
|
||||
}
|
||||
break;
|
||||
case DCB_USAGE_LISTENER:
|
||||
if (dcb->state == DCB_STATE_LISTENING)
|
||||
{
|
||||
rval++;
|
||||
}
|
||||
break;
|
||||
case DCB_USAGE_BACKEND:
|
||||
if (dcb->dcb_role == DCB_ROLE_BACKEND_HANDLER)
|
||||
{
|
||||
rval++;
|
||||
}
|
||||
break;
|
||||
case DCB_USAGE_INTERNAL:
|
||||
if (dcb->dcb_role == DCB_ROLE_CLIENT_HANDLER ||
|
||||
dcb->dcb_role == DCB_ROLE_BACKEND_HANDLER)
|
||||
{
|
||||
rval++;
|
||||
}
|
||||
break;
|
||||
case DCB_USAGE_ZOMBIE:
|
||||
if (DCB_ISZOMBIE(dcb))
|
||||
{
|
||||
rval++;
|
||||
}
|
||||
break;
|
||||
case DCB_USAGE_ALL:
|
||||
rval++;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case DCB_USAGE_LISTENER:
|
||||
if (dcb->state == DCB_STATE_LISTENING)
|
||||
{
|
||||
rval++;
|
||||
}
|
||||
break;
|
||||
case DCB_USAGE_BACKEND:
|
||||
if (dcb->dcb_role == DCB_ROLE_BACKEND_HANDLER)
|
||||
{
|
||||
rval++;
|
||||
}
|
||||
break;
|
||||
case DCB_USAGE_INTERNAL:
|
||||
if (dcb->dcb_role == DCB_ROLE_CLIENT_HANDLER ||
|
||||
dcb->dcb_role == DCB_ROLE_BACKEND_HANDLER)
|
||||
{
|
||||
rval++;
|
||||
}
|
||||
break;
|
||||
case DCB_USAGE_ZOMBIE:
|
||||
if (DCB_ISZOMBIE(dcb))
|
||||
{
|
||||
rval++;
|
||||
}
|
||||
break;
|
||||
case DCB_USAGE_ALL:
|
||||
rval++;
|
||||
break;
|
||||
}
|
||||
dcb = dcb->next;
|
||||
}
|
||||
}
|
||||
spinlock_release(&dcbspin);
|
||||
return rval;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user