aboutsummaryrefslogtreecommitdiff
path: root/fs
diff options
context:
space:
mode:
authorCoywolf Qi Hunt <qiyong@fc-cn.com>2005-09-06 15:18:17 -0700
committerLinus Torvalds <torvalds@g5.osdl.org>2005-09-07 16:57:41 -0700
commit736c7b808f38f3bb72941345e11e236ec65dec3d (patch)
tree9cad1481bea573680fe0c89f32689dcf4b8c04cd /fs
parent3f4bb1f4199b7dc0c958447b1e4898980013b884 (diff)
[PATCH] alloc_buffer_head() and free_buffer_head() cleanup
Signed-off-by: Coywolf Qi Hunt <qiyong@fc-cn.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'fs')
-rw-r--r--fs/buffer.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/fs/buffer.c b/fs/buffer.c
index 6a25d7df89b..a92b8140355 100644
--- a/fs/buffer.c
+++ b/fs/buffer.c
@@ -3046,10 +3046,9 @@ struct buffer_head *alloc_buffer_head(unsigned int __nocast gfp_flags)
{
struct buffer_head *ret = kmem_cache_alloc(bh_cachep, gfp_flags);
if (ret) {
- preempt_disable();
- __get_cpu_var(bh_accounting).nr++;
+ get_cpu_var(bh_accounting).nr++;
recalc_bh_state();
- preempt_enable();
+ put_cpu_var(bh_accounting);
}
return ret;
}
@@ -3059,10 +3058,9 @@ void free_buffer_head(struct buffer_head *bh)
{
BUG_ON(!list_empty(&bh->b_assoc_buffers));
kmem_cache_free(bh_cachep, bh);
- preempt_disable();
- __get_cpu_var(bh_accounting).nr--;
+ get_cpu_var(bh_accounting).nr--;
recalc_bh_state();
- preempt_enable();
+ put_cpu_var(bh_accounting);
}
EXPORT_SYMBOL(free_buffer_head);