Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 260441
b: refs/heads/master
c: 7f5ddcc
h: refs/heads/master
i:
  260439: f236156
v: v3
  • Loading branch information
Akinobu Mita authored and Linus Torvalds committed Jul 26, 2011
1 parent 4ca083c commit c665122
Show file tree
Hide file tree
Showing 5 changed files with 31 additions and 108 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 8307fc257cf3931d87e172bd8663e80c3d1e56a3
refs/heads/master: 7f5ddcc8d3eaccd5e169fda738530f937509645e
18 changes: 1 addition & 17 deletions trunk/include/linux/fault-inject.h
Original file line number Diff line number Diff line change
Expand Up @@ -27,23 +27,7 @@ struct fault_attr {
unsigned long count;

#ifdef CONFIG_FAULT_INJECTION_DEBUG_FS

struct {
struct dentry *dir;

struct dentry *probability_file;
struct dentry *interval_file;
struct dentry *times_file;
struct dentry *space_file;
struct dentry *verbose_file;
struct dentry *task_filter_file;
struct dentry *stacktrace_depth_file;
struct dentry *require_start_file;
struct dentry *require_end_file;
struct dentry *reject_start_file;
struct dentry *reject_end_file;
} dentries;

struct dentry *dir;
#endif
};

Expand Down
115 changes: 27 additions & 88 deletions trunk/lib/fault-inject.c
Original file line number Diff line number Diff line change
Expand Up @@ -199,115 +199,54 @@ static struct dentry *debugfs_create_atomic_t(const char *name, mode_t mode,

void cleanup_fault_attr_dentries(struct fault_attr *attr)
{
debugfs_remove(attr->dentries.probability_file);
attr->dentries.probability_file = NULL;

debugfs_remove(attr->dentries.interval_file);
attr->dentries.interval_file = NULL;

debugfs_remove(attr->dentries.times_file);
attr->dentries.times_file = NULL;

debugfs_remove(attr->dentries.space_file);
attr->dentries.space_file = NULL;

debugfs_remove(attr->dentries.verbose_file);
attr->dentries.verbose_file = NULL;

debugfs_remove(attr->dentries.task_filter_file);
attr->dentries.task_filter_file = NULL;

#ifdef CONFIG_FAULT_INJECTION_STACKTRACE_FILTER

debugfs_remove(attr->dentries.stacktrace_depth_file);
attr->dentries.stacktrace_depth_file = NULL;

debugfs_remove(attr->dentries.require_start_file);
attr->dentries.require_start_file = NULL;

debugfs_remove(attr->dentries.require_end_file);
attr->dentries.require_end_file = NULL;

debugfs_remove(attr->dentries.reject_start_file);
attr->dentries.reject_start_file = NULL;

debugfs_remove(attr->dentries.reject_end_file);
attr->dentries.reject_end_file = NULL;

#endif /* CONFIG_FAULT_INJECTION_STACKTRACE_FILTER */

if (attr->dentries.dir)
WARN_ON(!simple_empty(attr->dentries.dir));

debugfs_remove(attr->dentries.dir);
attr->dentries.dir = NULL;
debugfs_remove_recursive(attr->dir);
}

int init_fault_attr_dentries(struct fault_attr *attr, const char *name)
{
mode_t mode = S_IFREG | S_IRUSR | S_IWUSR;
struct dentry *dir;

memset(&attr->dentries, 0, sizeof(attr->dentries));

dir = debugfs_create_dir(name, NULL);
if (!dir)
goto fail;
attr->dentries.dir = dir;

attr->dentries.probability_file =
debugfs_create_ul("probability", mode, dir, &attr->probability);
return -ENOMEM;

attr->dentries.interval_file =
debugfs_create_ul("interval", mode, dir, &attr->interval);
attr->dir = dir;

attr->dentries.times_file =
debugfs_create_atomic_t("times", mode, dir, &attr->times);

attr->dentries.space_file =
debugfs_create_atomic_t("space", mode, dir, &attr->space);

attr->dentries.verbose_file =
debugfs_create_ul("verbose", mode, dir, &attr->verbose);

attr->dentries.task_filter_file = debugfs_create_bool("task-filter",
mode, dir, &attr->task_filter);

if (!attr->dentries.probability_file || !attr->dentries.interval_file ||
!attr->dentries.times_file || !attr->dentries.space_file ||
!attr->dentries.verbose_file || !attr->dentries.task_filter_file)
if (!debugfs_create_ul("probability", mode, dir, &attr->probability))
goto fail;
if (!debugfs_create_ul("interval", mode, dir, &attr->interval))
goto fail;
if (!debugfs_create_atomic_t("times", mode, dir, &attr->times))
goto fail;
if (!debugfs_create_atomic_t("space", mode, dir, &attr->space))
goto fail;
if (!debugfs_create_ul("verbose", mode, dir, &attr->verbose))
goto fail;
if (!debugfs_create_bool("task-filter", mode, dir, &attr->task_filter))
goto fail;

#ifdef CONFIG_FAULT_INJECTION_STACKTRACE_FILTER

attr->dentries.stacktrace_depth_file =
debugfs_create_stacktrace_depth(
"stacktrace-depth", mode, dir, &attr->stacktrace_depth);

attr->dentries.require_start_file =
debugfs_create_ul("require-start", mode, dir, &attr->require_start);

attr->dentries.require_end_file =
debugfs_create_ul("require-end", mode, dir, &attr->require_end);

attr->dentries.reject_start_file =
debugfs_create_ul("reject-start", mode, dir, &attr->reject_start);

attr->dentries.reject_end_file =
debugfs_create_ul("reject-end", mode, dir, &attr->reject_end);

if (!attr->dentries.stacktrace_depth_file ||
!attr->dentries.require_start_file ||
!attr->dentries.require_end_file ||
!attr->dentries.reject_start_file ||
!attr->dentries.reject_end_file)
if (!debugfs_create_stacktrace_depth("stacktrace-depth", mode, dir,
&attr->stacktrace_depth))
goto fail;
if (!debugfs_create_ul("require-start", mode, dir,
&attr->require_start))
goto fail;
if (!debugfs_create_ul("require-end", mode, dir, &attr->require_end))
goto fail;
if (!debugfs_create_ul("reject-start", mode, dir, &attr->reject_start))
goto fail;
if (!debugfs_create_ul("reject-end", mode, dir, &attr->reject_end))
goto fail;

#endif /* CONFIG_FAULT_INJECTION_STACKTRACE_FILTER */

return 0;
fail:
cleanup_fault_attr_dentries(attr);
debugfs_remove_recursive(attr->dir);

return -ENOMEM;
}

Expand Down
2 changes: 1 addition & 1 deletion trunk/mm/failslab.c
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ static int __init failslab_debugfs_init(void)
err = init_fault_attr_dentries(&failslab.attr, "failslab");
if (err)
return err;
dir = failslab.attr.dentries.dir;
dir = failslab.attr.dir;

failslab.ignore_gfp_wait_file =
debugfs_create_bool("ignore-gfp-wait", mode, dir,
Expand Down
2 changes: 1 addition & 1 deletion trunk/mm/page_alloc.c
Original file line number Diff line number Diff line change
Expand Up @@ -1424,7 +1424,7 @@ static int __init fail_page_alloc_debugfs(void)
"fail_page_alloc");
if (err)
return err;
dir = fail_page_alloc.attr.dentries.dir;
dir = fail_page_alloc.attr.dir;

fail_page_alloc.ignore_gfp_wait_file =
debugfs_create_bool("ignore-gfp-wait", mode, dir,
Expand Down

0 comments on commit c665122

Please sign in to comment.