From 8a402b8c4ea75131cd603ce94e3fa372ba7ab4a2 Mon Sep 17 00:00:00 2001 From: Eric Dumazet Date: Fri, 24 Mar 2006 03:18:10 -0800 Subject: [PATCH] --- yaml --- r: 23439 b: refs/heads/master c: 8a14342683b1e3adcf5f78660a42fcbd95b44a35 h: refs/heads/master i: 23437: 9dcf3d823fb296daa1f473114a5439b876167117 23435: 4f9383c00ba3203265729a4b3e7bbb2596b57913 23431: 06868dfaf568841e0e51b32cbbdc9008c242c659 23423: ffd490388c252eea9ab8551576bd2c5509618a13 v: v3 --- [refs] | 2 +- trunk/fs/buffer.c | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 7f13c5997d63..4ad634c12a4a 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 2ecb9e633c5057d1203a59ef3e5c3aaea37c402e +refs/heads/master: 8a14342683b1e3adcf5f78660a42fcbd95b44a35 diff --git a/trunk/fs/buffer.c b/trunk/fs/buffer.c index 36c7253bea72..11ca6eb46a33 100644 --- a/trunk/fs/buffer.c +++ b/trunk/fs/buffer.c @@ -3078,7 +3078,7 @@ static void recalc_bh_state(void) if (__get_cpu_var(bh_accounting).ratelimit++ < 4096) return; __get_cpu_var(bh_accounting).ratelimit = 0; - for_each_cpu(i) + for_each_online_cpu(i) tot += per_cpu(bh_accounting, i).nr; buffer_heads_over_limit = (tot > max_buffer_heads); } @@ -3127,6 +3127,9 @@ static void buffer_exit_cpu(int cpu) brelse(b->bhs[i]); b->bhs[i] = NULL; } + get_cpu_var(bh_accounting).nr += per_cpu(bh_accounting, cpu).nr; + per_cpu(bh_accounting, cpu).nr = 0; + put_cpu_var(bh_accounting); } static int buffer_cpu_notify(struct notifier_block *self,