[PATCH] percpu_counter: unbreak __percpu_counter_add()

From: Hugh Dickins
Date: Thu Jan 16 2014 - 18:27:29 EST


Commit 74e72f894d56 ("lib/percpu_counter.c: fix __percpu_counter_add()")
looked very plausible, but its arithmetic was badly wrong: obvious once
you see the fix, but maddening to get there from the weird tmpfs ENOSPCs

Signed-off-by: Hugh Dickins <hughd@xxxxxxxxxx>
---

lib/percpu_counter.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

--- 3.13-rc8+/lib/percpu_counter.c 2014-01-15 09:53:27.768111792 -0800
+++ linux/lib/percpu_counter.c 2014-01-16 14:58:54.156555308 -0800
@@ -82,7 +82,7 @@ void __percpu_counter_add(struct percpu_
unsigned long flags;
raw_spin_lock_irqsave(&fbc->lock, flags);
fbc->count += count;
- __this_cpu_sub(*fbc->counters, count);
+ __this_cpu_sub(*fbc->counters, count - amount);
raw_spin_unlock_irqrestore(&fbc->lock, flags);
} else {
this_cpu_add(*fbc->counters, amount);
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/