summaryrefslogtreecommitdiffstats
path: root/lib/fault-inject.c
diff options
context:
space:
mode:
authorAnton Blanchard <anton@samba.org>2012-06-20 12:53:03 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2012-06-20 14:39:36 -0700
commitf39cdaebb89dc3e6dd4f3e75b6d4e87ef12190af (patch)
tree3e6db2d5c97c822591350be26a09097589ef5b8c /lib/fault-inject.c
parent10d8935f46e5028847b179757ecbf9238b13d129 (diff)
downloadlinux-f39cdaebb89dc3e6dd4f3e75b6d4e87ef12190af.tar.gz
linux-f39cdaebb89dc3e6dd4f3e75b6d4e87ef12190af.tar.bz2
linux-f39cdaebb89dc3e6dd4f3e75b6d4e87ef12190af.zip
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.c4
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)
bool should_fail(struct fault_attr *attr, ssize_t size)
{
+ /* No need to check any other properties if the probability is 0 */
+ if (attr->probability == 0)
+ return false;
+
if (attr->task_filter && !fail_task(attr, current))
return false;