Lines Matching refs:dir

452 static void __get_system_dir(struct ftrace_subsystem_dir *dir)  in __get_system_dir()  argument
454 WARN_ON_ONCE(dir->ref_count == 0); in __get_system_dir()
455 dir->ref_count++; in __get_system_dir()
456 __get_system(dir->subsystem); in __get_system_dir()
459 static void __put_system_dir(struct ftrace_subsystem_dir *dir) in __put_system_dir() argument
461 WARN_ON_ONCE(dir->ref_count == 0); in __put_system_dir()
463 WARN_ON_ONCE(system_refcount(dir->subsystem) == 1 && dir->ref_count != 1); in __put_system_dir()
465 __put_system(dir->subsystem); in __put_system_dir()
466 if (!--dir->ref_count) in __put_system_dir()
467 kfree(dir); in __put_system_dir()
470 static void put_system(struct ftrace_subsystem_dir *dir) in put_system() argument
473 __put_system_dir(dir); in put_system()
477 static void remove_subsystem(struct ftrace_subsystem_dir *dir) in remove_subsystem() argument
479 if (!dir) in remove_subsystem()
482 if (!--dir->nr_events) { in remove_subsystem()
483 tracefs_remove_recursive(dir->entry); in remove_subsystem()
484 list_del(&dir->list); in remove_subsystem()
485 __put_system_dir(dir); in remove_subsystem()
491 struct dentry *dir = file->dir; in remove_event_file_dir() local
494 if (dir) { in remove_event_file_dir()
495 spin_lock(&dir->d_lock); /* probably unneeded */ in remove_event_file_dir()
496 list_for_each_entry(child, &dir->d_subdirs, d_child) { in remove_event_file_dir()
500 spin_unlock(&dir->d_lock); in remove_event_file_dir()
502 tracefs_remove_recursive(dir); in remove_event_file_dir()
832 struct ftrace_subsystem_dir *dir = filp->private_data; in system_enable_read() local
833 struct event_subsystem *system = dir->subsystem; in system_enable_read()
836 struct trace_array *tr = dir->tr; in system_enable_read()
877 struct ftrace_subsystem_dir *dir = filp->private_data; in system_enable_write() local
878 struct event_subsystem *system = dir->subsystem; in system_enable_write()
901 ret = __ftrace_set_clr_event(dir->tr, NULL, name, NULL, val); in system_enable_write()
1136 struct ftrace_subsystem_dir *dir = NULL; /* Initialize for gcc */ in subsystem_open() local
1147 list_for_each_entry(dir, &tr->systems, list) { in subsystem_open()
1148 if (dir == inode->i_private) { in subsystem_open()
1150 if (dir->nr_events) { in subsystem_open()
1151 __get_system_dir(dir); in subsystem_open()
1152 system = dir->subsystem; in subsystem_open()
1166 WARN_ON(!dir); in subsystem_open()
1170 put_system(dir); in subsystem_open()
1177 put_system(dir); in subsystem_open()
1185 struct ftrace_subsystem_dir *dir; in system_tr_open() local
1196 dir = kzalloc(sizeof(*dir), GFP_KERNEL); in system_tr_open()
1197 if (!dir) { in system_tr_open()
1202 dir->tr = tr; in system_tr_open()
1207 kfree(dir); in system_tr_open()
1211 filp->private_data = dir; in system_tr_open()
1218 struct ftrace_subsystem_dir *dir = file->private_data; in subsystem_release() local
1220 trace_array_put(dir->tr); in subsystem_release()
1227 if (dir->subsystem) in subsystem_release()
1228 put_system(dir); in subsystem_release()
1230 kfree(dir); in subsystem_release()
1239 struct ftrace_subsystem_dir *dir = filp->private_data; in subsystem_filter_read() local
1240 struct event_subsystem *system = dir->subsystem; in subsystem_filter_read()
1266 struct ftrace_subsystem_dir *dir = filp->private_data; in subsystem_filter_write() local
1283 err = apply_subsystem_event_filter(dir, buf); in subsystem_filter_write()
1503 struct ftrace_subsystem_dir *dir; in event_subsystem_dir() local
1508 list_for_each_entry(dir, &tr->systems, list) { in event_subsystem_dir()
1509 system = dir->subsystem; in event_subsystem_dir()
1511 dir->nr_events++; in event_subsystem_dir()
1512 file->system = dir; in event_subsystem_dir()
1513 return dir->entry; in event_subsystem_dir()
1526 dir = kmalloc(sizeof(*dir), GFP_KERNEL); in event_subsystem_dir()
1527 if (!dir) in event_subsystem_dir()
1537 dir->entry = tracefs_create_dir(name, parent); in event_subsystem_dir()
1538 if (!dir->entry) { in event_subsystem_dir()
1544 dir->tr = tr; in event_subsystem_dir()
1545 dir->ref_count = 1; in event_subsystem_dir()
1546 dir->nr_events = 1; in event_subsystem_dir()
1547 dir->subsystem = system; in event_subsystem_dir()
1548 file->system = dir; in event_subsystem_dir()
1550 entry = tracefs_create_file("filter", 0644, dir->entry, dir, in event_subsystem_dir()
1558 trace_create_file("enable", 0644, dir->entry, dir, in event_subsystem_dir()
1561 list_add(&dir->list, &tr->systems); in event_subsystem_dir()
1563 return dir->entry; in event_subsystem_dir()
1566 kfree(dir); in event_subsystem_dir()
1569 if (!dir || !system) in event_subsystem_dir()
1596 file->dir = tracefs_create_dir(name, d_events); in event_create_dir()
1597 if (!file->dir) { in event_create_dir()
1603 trace_create_file("enable", 0644, file->dir, file, in event_create_dir()
1608 trace_create_file("id", 0444, file->dir, in event_create_dir()
1626 trace_create_file("filter", 0644, file->dir, file, in event_create_dir()
1634 trace_create_file("trigger", 0644, file->dir, file, in event_create_dir()
1637 trace_create_file("format", 0444, file->dir, call, in event_create_dir()
2763 struct ftrace_subsystem_dir *dir; in event_trace_self_tests() local
2819 list_for_each_entry(dir, &tr->systems, list) { in event_trace_self_tests()
2821 system = dir->subsystem; in event_trace_self_tests()