Lines Matching refs:dir
640 static void __get_system_dir(struct trace_subsystem_dir *dir) in __get_system_dir() argument
642 WARN_ON_ONCE(dir->ref_count == 0); in __get_system_dir()
643 dir->ref_count++; in __get_system_dir()
644 __get_system(dir->subsystem); in __get_system_dir()
647 static void __put_system_dir(struct trace_subsystem_dir *dir) in __put_system_dir() argument
649 WARN_ON_ONCE(dir->ref_count == 0); in __put_system_dir()
651 WARN_ON_ONCE(system_refcount(dir->subsystem) == 1 && dir->ref_count != 1); in __put_system_dir()
653 __put_system(dir->subsystem); in __put_system_dir()
654 if (!--dir->ref_count) in __put_system_dir()
655 kfree(dir); in __put_system_dir()
658 static void put_system(struct trace_subsystem_dir *dir) in put_system() argument
661 __put_system_dir(dir); in put_system()
665 static void remove_subsystem(struct trace_subsystem_dir *dir) in remove_subsystem() argument
667 if (!dir) in remove_subsystem()
670 if (!--dir->nr_events) { in remove_subsystem()
671 tracefs_remove_recursive(dir->entry); in remove_subsystem()
672 list_del(&dir->list); in remove_subsystem()
673 __put_system_dir(dir); in remove_subsystem()
679 struct dentry *dir = file->dir; in remove_event_file_dir() local
682 if (dir) { in remove_event_file_dir()
683 spin_lock(&dir->d_lock); /* probably unneeded */ in remove_event_file_dir()
684 list_for_each_entry(child, &dir->d_subdirs, d_child) { in remove_event_file_dir()
688 spin_unlock(&dir->d_lock); in remove_event_file_dir()
690 tracefs_remove_recursive(dir); in remove_event_file_dir()
1072 struct trace_subsystem_dir *dir = filp->private_data; in system_enable_read() local
1073 struct event_subsystem *system = dir->subsystem; in system_enable_read()
1076 struct trace_array *tr = dir->tr; in system_enable_read()
1117 struct trace_subsystem_dir *dir = filp->private_data; in system_enable_write() local
1118 struct event_subsystem *system = dir->subsystem; in system_enable_write()
1141 ret = __ftrace_set_clr_event(dir->tr, NULL, name, NULL, val); in system_enable_write()
1376 struct trace_subsystem_dir *dir = NULL; /* Initialize for gcc */ in subsystem_open() local
1387 list_for_each_entry(dir, &tr->systems, list) { in subsystem_open()
1388 if (dir == inode->i_private) { in subsystem_open()
1390 if (dir->nr_events) { in subsystem_open()
1391 __get_system_dir(dir); in subsystem_open()
1392 system = dir->subsystem; in subsystem_open()
1406 WARN_ON(!dir); in subsystem_open()
1410 put_system(dir); in subsystem_open()
1417 put_system(dir); in subsystem_open()
1425 struct trace_subsystem_dir *dir; in system_tr_open() local
1436 dir = kzalloc(sizeof(*dir), GFP_KERNEL); in system_tr_open()
1437 if (!dir) { in system_tr_open()
1442 dir->tr = tr; in system_tr_open()
1447 kfree(dir); in system_tr_open()
1451 filp->private_data = dir; in system_tr_open()
1458 struct trace_subsystem_dir *dir = file->private_data; in subsystem_release() local
1460 trace_array_put(dir->tr); in subsystem_release()
1467 if (dir->subsystem) in subsystem_release()
1468 put_system(dir); in subsystem_release()
1470 kfree(dir); in subsystem_release()
1479 struct trace_subsystem_dir *dir = filp->private_data; in subsystem_filter_read() local
1480 struct event_subsystem *system = dir->subsystem; in subsystem_filter_read()
1506 struct trace_subsystem_dir *dir = filp->private_data; in subsystem_filter_write() local
1523 err = apply_subsystem_event_filter(dir, buf); in subsystem_filter_write()
1984 struct trace_subsystem_dir *dir; in event_subsystem_dir() local
1989 list_for_each_entry(dir, &tr->systems, list) { in event_subsystem_dir()
1990 system = dir->subsystem; in event_subsystem_dir()
1992 dir->nr_events++; in event_subsystem_dir()
1993 file->system = dir; in event_subsystem_dir()
1994 return dir->entry; in event_subsystem_dir()
2007 dir = kmalloc(sizeof(*dir), GFP_KERNEL); in event_subsystem_dir()
2008 if (!dir) in event_subsystem_dir()
2018 dir->entry = tracefs_create_dir(name, parent); in event_subsystem_dir()
2019 if (!dir->entry) { in event_subsystem_dir()
2025 dir->tr = tr; in event_subsystem_dir()
2026 dir->ref_count = 1; in event_subsystem_dir()
2027 dir->nr_events = 1; in event_subsystem_dir()
2028 dir->subsystem = system; in event_subsystem_dir()
2029 file->system = dir; in event_subsystem_dir()
2031 entry = tracefs_create_file("filter", 0644, dir->entry, dir, in event_subsystem_dir()
2039 trace_create_file("enable", 0644, dir->entry, dir, in event_subsystem_dir()
2042 list_add(&dir->list, &tr->systems); in event_subsystem_dir()
2044 return dir->entry; in event_subsystem_dir()
2047 kfree(dir); in event_subsystem_dir()
2050 if (!dir || !system) in event_subsystem_dir()
2077 file->dir = tracefs_create_dir(name, d_events); in event_create_dir()
2078 if (!file->dir) { in event_create_dir()
2084 trace_create_file("enable", 0644, file->dir, file, in event_create_dir()
2089 trace_create_file("id", 0444, file->dir, in event_create_dir()
2107 trace_create_file("filter", 0644, file->dir, file, in event_create_dir()
2115 trace_create_file("trigger", 0644, file->dir, file, in event_create_dir()
2118 trace_create_file("format", 0444, file->dir, call, in event_create_dir()
3253 struct trace_subsystem_dir *dir; in event_trace_self_tests() local
3309 list_for_each_entry(dir, &tr->systems, list) { in event_trace_self_tests()
3311 system = dir->subsystem; in event_trace_self_tests()