Lines Matching refs:dir
954 static void __get_system_dir(struct trace_subsystem_dir *dir) in __get_system_dir() argument
956 WARN_ON_ONCE(dir->ref_count == 0); in __get_system_dir()
957 dir->ref_count++; in __get_system_dir()
958 __get_system(dir->subsystem); in __get_system_dir()
961 static void __put_system_dir(struct trace_subsystem_dir *dir) in __put_system_dir() argument
963 WARN_ON_ONCE(dir->ref_count == 0); in __put_system_dir()
965 WARN_ON_ONCE(system_refcount(dir->subsystem) == 1 && dir->ref_count != 1); in __put_system_dir()
967 __put_system(dir->subsystem); in __put_system_dir()
968 if (!--dir->ref_count) in __put_system_dir()
969 kfree(dir); in __put_system_dir()
972 static void put_system(struct trace_subsystem_dir *dir) in put_system() argument
975 __put_system_dir(dir); in put_system()
979 static void remove_subsystem(struct trace_subsystem_dir *dir) in remove_subsystem() argument
981 if (!dir) in remove_subsystem()
984 if (!--dir->nr_events) { in remove_subsystem()
985 tracefs_remove(dir->entry); in remove_subsystem()
986 list_del(&dir->list); in remove_subsystem()
987 __put_system_dir(dir); in remove_subsystem()
993 struct dentry *dir = file->dir; in remove_event_file_dir() local
996 if (dir) { in remove_event_file_dir()
997 spin_lock(&dir->d_lock); /* probably unneeded */ in remove_event_file_dir()
998 list_for_each_entry(child, &dir->d_subdirs, d_child) { in remove_event_file_dir()
1002 spin_unlock(&dir->d_lock); in remove_event_file_dir()
1004 tracefs_remove(dir); in remove_event_file_dir()
1440 struct trace_subsystem_dir *dir = filp->private_data; in system_enable_read() local
1441 struct event_subsystem *system = dir->subsystem; in system_enable_read()
1444 struct trace_array *tr = dir->tr; in system_enable_read()
1486 struct trace_subsystem_dir *dir = filp->private_data; in system_enable_write() local
1487 struct event_subsystem *system = dir->subsystem; in system_enable_write()
1510 ret = __ftrace_set_clr_event(dir->tr, NULL, name, NULL, val); in system_enable_write()
1742 struct trace_subsystem_dir *dir = NULL, *iter_dir; in subsystem_open() local
1758 dir = iter_dir; in subsystem_open()
1759 if (dir->nr_events) { in subsystem_open()
1760 __get_system_dir(dir); in subsystem_open()
1761 system = dir->subsystem; in subsystem_open()
1776 put_system(dir); in subsystem_open()
1783 put_system(dir); in subsystem_open()
1791 struct trace_subsystem_dir *dir; in system_tr_open() local
1796 dir = kzalloc(sizeof(*dir), GFP_KERNEL); in system_tr_open()
1797 if (!dir) in system_tr_open()
1802 kfree(dir); in system_tr_open()
1805 dir->tr = tr; in system_tr_open()
1806 filp->private_data = dir; in system_tr_open()
1813 struct trace_subsystem_dir *dir = file->private_data; in subsystem_release() local
1815 trace_array_put(dir->tr); in subsystem_release()
1822 if (dir->subsystem) in subsystem_release()
1823 put_system(dir); in subsystem_release()
1825 kfree(dir); in subsystem_release()
1834 struct trace_subsystem_dir *dir = filp->private_data; in subsystem_filter_read() local
1835 struct event_subsystem *system = dir->subsystem; in subsystem_filter_read()
1861 struct trace_subsystem_dir *dir = filp->private_data; in subsystem_filter_write() local
1872 err = apply_subsystem_event_filter(dir, buf); in subsystem_filter_write()
2301 struct trace_subsystem_dir *dir; in event_subsystem_dir() local
2305 list_for_each_entry(dir, &tr->systems, list) { in event_subsystem_dir()
2306 system = dir->subsystem; in event_subsystem_dir()
2308 dir->nr_events++; in event_subsystem_dir()
2309 file->system = dir; in event_subsystem_dir()
2310 return dir->entry; in event_subsystem_dir()
2323 dir = kmalloc(sizeof(*dir), GFP_KERNEL); in event_subsystem_dir()
2324 if (!dir) in event_subsystem_dir()
2334 dir->entry = tracefs_create_dir(name, parent); in event_subsystem_dir()
2335 if (!dir->entry) { in event_subsystem_dir()
2341 dir->tr = tr; in event_subsystem_dir()
2342 dir->ref_count = 1; in event_subsystem_dir()
2343 dir->nr_events = 1; in event_subsystem_dir()
2344 dir->subsystem = system; in event_subsystem_dir()
2345 file->system = dir; in event_subsystem_dir()
2351 dir->entry, dir, in event_subsystem_dir()
2359 trace_create_file("enable", TRACE_MODE_WRITE, dir->entry, dir, in event_subsystem_dir()
2363 list_add(&dir->list, &tr->systems); in event_subsystem_dir()
2365 return dir->entry; in event_subsystem_dir()
2368 kfree(dir); in event_subsystem_dir()
2371 if (!dir || !system) in event_subsystem_dir()
2435 file->dir = tracefs_create_dir(name, d_events); in event_create_dir()
2436 if (!file->dir) { in event_create_dir()
2442 trace_create_file("enable", TRACE_MODE_WRITE, file->dir, file, in event_create_dir()
2447 trace_create_file("id", TRACE_MODE_READ, file->dir, in event_create_dir()
2463 trace_create_file("filter", TRACE_MODE_WRITE, file->dir, in event_create_dir()
2466 trace_create_file("trigger", TRACE_MODE_WRITE, file->dir, in event_create_dir()
2471 trace_create_file("hist", TRACE_MODE_READ, file->dir, file, in event_create_dir()
2475 trace_create_file("hist_debug", TRACE_MODE_READ, file->dir, file, in event_create_dir()
2478 trace_create_file("format", TRACE_MODE_READ, file->dir, call, in event_create_dir()
2483 trace_create_file("inject", 0200, file->dir, file, in event_create_dir()
3906 struct trace_subsystem_dir *dir; in event_trace_self_tests() local
3962 list_for_each_entry(dir, &tr->systems, list) { in event_trace_self_tests()
3964 system = dir->subsystem; in event_trace_self_tests()