summaryrefslogtreecommitdiff
path: root/lib/fault-inject.c
diff options
context:
space:
mode:
authorTony Lindgren <tony@atomide.com>2020-06-16 09:25:03 -0700
committerTony Lindgren <tony@atomide.com>2020-06-16 09:25:03 -0700
commit07c7b547a79605f1041d55b84d91a4a4d9c5b363 (patch)
treed98c1adacc8c65b475c325b427e54b8205b0013d /lib/fault-inject.c
parente4a8fc054340f4df761f6a73335f8fdc0b7ac4fd (diff)
parentb3a9e3b9622ae10064826dccb4f7a52bd88c7407 (diff)
Merge tag 'v5.8-rc1' into fixes
Linux 5.8-rc1
Diffstat (limited to 'lib/fault-inject.c')
-rw-r--r--lib/fault-inject.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/lib/fault-inject.c b/lib/fault-inject.c
index 8186ca84910b..ce12621b4275 100644
--- a/lib/fault-inject.c
+++ b/lib/fault-inject.c
@@ -106,7 +106,9 @@ bool should_fail(struct fault_attr *attr, ssize_t size)
unsigned int fail_nth = READ_ONCE(current->fail_nth);
if (fail_nth) {
- if (!WRITE_ONCE(current->fail_nth, fail_nth - 1))
+ fail_nth--;
+ WRITE_ONCE(current->fail_nth, fail_nth);
+ if (!fail_nth)
goto fail;
return false;