Messages in this thread | | | Date | Thu, 16 Apr 2009 16:33:30 +0800 | From | Li Zefan <> | Subject | Re: [PATCH] tracing/filters: add filter_mutex to protect filter predicates |
| |
Tom Zanussi wrote: > This patch adds a filter_mutex to prevent the filter predicates from > being accessed concurrently by various external functions. > > It's based on a previous patch by Li Zefan: > "[PATCH 7/7] tracing/filters: make filter preds RCU safe" > > but any problems with it were added by me. ;-) > > Signed-off-by: Tom Zanussi <tzanussi@gmail.com> >
Reviewed-and-tested-by: Li Zefan <lizf@cn.fujitsu.com>
except:
> @@ -348,17 +399,15 @@ int filter_add_subsystem_pred(struct event_subsystem *system, > if (strcmp(call->system, system->name)) > continue; > > - if (!find_event_field(call, pred->field_name)) > - continue; > - > - err = filter_add_pred(call, pred); > + err = __filter_add_pred(call, pred); > if (err == -ENOMEM) { > system->preds[system->n_preds] = NULL; > - return err; > + system->n_preds--; > + break;
now we return 0 but not ENOMEM in this failure case.
> } > } > > - system->n_preds++; > + mutex_unlock(&filter_mutex); > > return 0; > }
| |