fault-injection: add ability to export fault_attr in arbitrary directory
[linux-2.6.git] / include / linux / fault-inject.h
index 9bb584e..c6f996f 100644 (file)
@@ -5,7 +5,7 @@
 
 #include <linux/types.h>
 #include <linux/debugfs.h>
-#include <asm/atomic.h>
+#include <linux/atomic.h>
 
 /*
  * For explanation of the elements of this struct, see
@@ -25,26 +25,6 @@ struct fault_attr {
        unsigned long reject_end;
 
        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;
-
-#endif
 };
 
 #define FAULT_ATTR_INITIALIZER {                               \
@@ -52,32 +32,38 @@ struct fault_attr {
                .times = ATOMIC_INIT(1),                        \
                .require_end = ULONG_MAX,                       \
                .stacktrace_depth = 32,                         \
+               .verbose = 2,                                   \
        }
 
 #define DECLARE_FAULT_ATTR(name) struct fault_attr name = FAULT_ATTR_INITIALIZER
 int setup_fault_attr(struct fault_attr *attr, char *str);
-void should_fail_srandom(unsigned long entropy);
-int should_fail(struct fault_attr *attr, ssize_t size);
+bool should_fail(struct fault_attr *attr, ssize_t size);
 
 #ifdef CONFIG_FAULT_INJECTION_DEBUG_FS
 
-int init_fault_attr_dentries(struct fault_attr *attr, const char *name);
-void cleanup_fault_attr_dentries(struct fault_attr *attr);
+struct dentry *fault_create_debugfs_attr(const char *name,
+                       struct dentry *parent, struct fault_attr *attr);
 
 #else /* CONFIG_FAULT_INJECTION_DEBUG_FS */
 
-static inline int init_fault_attr_dentries(struct fault_attr *attr,
-                                         const char *name)
-{
-       return -ENODEV;
-}
-
-static inline void cleanup_fault_attr_dentries(struct fault_attr *attr)
+static inline struct dentry *fault_create_debugfs_attr(const char *name,
+                       struct dentry *parent, struct fault_attr *attr)
 {
+       return ERR_PTR(-ENODEV);
 }
 
 #endif /* CONFIG_FAULT_INJECTION_DEBUG_FS */
 
 #endif /* CONFIG_FAULT_INJECTION */
 
+#ifdef CONFIG_FAILSLAB
+extern bool should_failslab(size_t size, gfp_t gfpflags, unsigned long flags);
+#else
+static inline bool should_failslab(size_t size, gfp_t gfpflags,
+                               unsigned long flags)
+{
+       return false;
+}
+#endif /* CONFIG_FAILSLAB */
+
 #endif /* _LINUX_FAULT_INJECT_H */