if (head->th_cli_hash == NULL)
return -ENOMEM;
- start.u.tc_start.ts_opcodes = NULL;
start.u.tc_start.ts_opcodes_str = "*";
start.u.tc_start.ts_rpc_rate = tbf_rate;
break;
}
- if (rc == 0)
+ if (rc == 0 && bitmaptr)
*bitmaptr = opcodes;
else
CFS_FREE_BITMAP(opcodes);
static void nrs_tbf_opcode_cmd_fini(struct nrs_tbf_cmd *cmd)
{
- if (cmd->u.tc_start.ts_opcodes)
- CFS_FREE_BITMAP(cmd->u.tc_start.ts_opcodes);
-
if (cmd->u.tc_start.ts_opcodes_str)
OBD_FREE(cmd->u.tc_start.ts_opcodes_str,
strlen(cmd->u.tc_start.ts_opcodes_str) + 1);
/* parse opcode list */
rc = nrs_tbf_opcode_list_parse(cmd->u.tc_start.ts_opcodes_str,
strlen(cmd->u.tc_start.ts_opcodes_str),
- &cmd->u.tc_start.ts_opcodes);
+ NULL);
if (rc)
nrs_tbf_opcode_cmd_fini(cmd);
strlen(start->u.tc_start.ts_opcodes_str) + 1);
/* Default rule '*' */
- if (start->u.tc_start.ts_opcodes == NULL)
+ if (strcmp(start->u.tc_start.ts_opcodes_str, "*") == 0)
return 0;
rc = nrs_tbf_opcode_list_parse(rule->tr_opcodes_str,