diff options
author | Anton Blanchard <anton@samba.org> | 2012-06-20 15:53:03 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-06-20 17:39:36 -0400 |
commit | f39cdaebb89dc3e6dd4f3e75b6d4e87ef12190af (patch) | |
tree | 3e6db2d5c97c822591350be26a09097589ef5b8c /lib/fault-inject.c | |
parent | 10d8935f46e5028847b179757ecbf9238b13d129 (diff) |
fault-inject: avoid call to random32() if fault injection is disabled
After enabling CONFIG_FAILSLAB I noticed random32 in profiles even if slub
fault injection wasn't enabled at runtime.
should_fail forces a comparison against random32() even if probability is
0:
if (attr->probability <= random32() % 100)
return false;
Add a check up front for probability == 0 and avoid all of the more
complicated checks.
Signed-off-by: Anton Blanchard <anton@samba.org>
Acked-by: Akinobu Mita <akinobu.mita@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'lib/fault-inject.c')
-rw-r--r-- | lib/fault-inject.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/lib/fault-inject.c b/lib/fault-inject.c index 6805453c18e7..f7210ad6cffd 100644 --- a/lib/fault-inject.c +++ b/lib/fault-inject.c | |||
@@ -101,6 +101,10 @@ static inline bool fail_stacktrace(struct fault_attr *attr) | |||
101 | 101 | ||
102 | bool should_fail(struct fault_attr *attr, ssize_t size) | 102 | bool should_fail(struct fault_attr *attr, ssize_t size) |
103 | { | 103 | { |
104 | /* No need to check any other properties if the probability is 0 */ | ||
105 | if (attr->probability == 0) | ||
106 | return false; | ||
107 | |||
104 | if (attr->task_filter && !fail_task(attr, current)) | 108 | if (attr->task_filter && !fail_task(attr, current)) |
105 | return false; | 109 | return false; |
106 | 110 | ||