track_data
unsigned int track_var_idx = data->track_data.track_var->var.idx;
unsigned int track_var_idx = data->track_data.track_var->var.idx;
if (data->track_data.save_data)
data->track_data.save_data(hist_data, elt, buffer, rec, rbe,
hist_data = data->track_data.track_var->hist_data;
return data->track_data.check_val(track_val, var_val);
struct track_data *track_data = tr->cond_snapshot->cond_data;
if (!track_data)
action = track_data->action_data;
track_val = get_track_val(track_data->hist_data, context->elt,
track_data->action_data);
if (!action->track_data.check_val(track_data->track_val, track_val))
track_data->track_val = track_val;
memcpy(track_data->key, context->key, track_data->key_len);
track_elt_data = track_data->elt.private_data;
track_data->updated = true;
struct track_data *track_data;
track_data = tracing_cond_snapshot_data(file->tr);
if (!track_data)
if (!track_data->updated)
action->track_data.var_str, track_data->track_val);
hist_trigger_print_key(m, hist_data, track_data->key, &track_data->elt);
u64 var_val = var_ref_vals[data->track_data.var_ref->var_ref_idx];
destroy_hist_field(data->track_data.track_var, 0);
struct track_data *track_data;
track_data = tracing_cond_snapshot_data(file->tr);
if (track_data && track_data->hist_data == hist_data) {
track_data_free(track_data);
kfree(data->track_data.var_str);
track_data_var_str = data->track_data.var_str;
data->track_data.var_ref = ref_field;
data->track_data.track_var = track_var;
data->track_data.check_val = check_track_val_max;
data->track_data.check_val = check_track_val_changed;
data->track_data.save_data = save_track_data_vars;
data->track_data.check_val = check_track_val_max;
data->track_data.check_val = check_track_val_changed;
data->track_data.save_data = save_track_data_snapshot;
data->track_data.check_val = check_track_val_max;
data->track_data.check_val = check_track_val_changed;
data->track_data.save_data = action_trace;
data->track_data.var_str = kstrdup(var_str, GFP_KERNEL);
if (!data->track_data.var_str) {
struct track_data *track_data;
track_data = track_data_alloc(hist_data->key_size, data, hist_data);
if (IS_ERR(track_data)) {
ret = PTR_ERR(track_data);
ret = tracing_snapshot_cond_enable(file->tr, track_data,
track_data_free(track_data);
seq_printf(m, "%s", data->track_data.var_str);
if (strcmp(data->track_data.var_str,
data_test->track_data.var_str) != 0)
ret = hist_field_debug_show(m, data->track_data.var_ref,
ret = hist_field_debug_show(m, data->track_data.track_var,
} track_data;
static void track_data_free(struct track_data *track_data)
if (!track_data)
kfree(track_data->key);
elt_data = track_data->elt.private_data;
kfree(track_data);
static struct track_data *track_data_alloc(unsigned int key_len,
struct track_data *data = kzalloc_obj(*data);