aboutsummaryrefslogtreecommitdiffstats
path: root/fs/btrfs/extent_io.c
diff options
context:
space:
mode:
authorChris Mason <chris.mason@oracle.com>2009-02-04 09:24:05 -0500
committerChris Mason <chris.mason@oracle.com>2009-02-04 09:24:05 -0500
commit3935127c50c84106d654ef14962cff28c660bc62 (patch)
tree1d277f316eb0134a4a76fa2b237a048a0d925911 /fs/btrfs/extent_io.c
parentb7a9f29fcf4e53e9ca7982331649fa2013e69c99 (diff)
Btrfs: disable leak debugging checks in extent_io.c
extent_io.c has debugging code to report and free leaked extent_state and extent_buffer objects at rmmod time. This helps track down leaks and it saves you from rebooting just to properly remove the kmem_cache object. But, the code runs under a fairly expensive spinlock and the checks to see if it is currently enabled are not entirely consistent. Some use #ifdef and some #if. This changes everything to #if and disables the leak checking. Signed-off-by: Chris Mason <chris.mason@oracle.com>
Diffstat (limited to 'fs/btrfs/extent_io.c')
-rw-r--r--fs/btrfs/extent_io.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/fs/btrfs/extent_io.c b/fs/btrfs/extent_io.c
index a3b0676403f7..2ea7f052722c 100644
--- a/fs/btrfs/extent_io.c
+++ b/fs/btrfs/extent_io.c
@@ -30,7 +30,7 @@ static LIST_HEAD(buffers);
30static LIST_HEAD(states); 30static LIST_HEAD(states);
31 31
32#define LEAK_DEBUG 0 32#define LEAK_DEBUG 0
33#ifdef LEAK_DEBUG 33#if LEAK_DEBUG
34static DEFINE_SPINLOCK(leak_lock); 34static DEFINE_SPINLOCK(leak_lock);
35#endif 35#endif
36 36
@@ -119,7 +119,7 @@ void extent_io_tree_init(struct extent_io_tree *tree,
119static struct extent_state *alloc_extent_state(gfp_t mask) 119static struct extent_state *alloc_extent_state(gfp_t mask)
120{ 120{
121 struct extent_state *state; 121 struct extent_state *state;
122#ifdef LEAK_DEBUG 122#if LEAK_DEBUG
123 unsigned long flags; 123 unsigned long flags;
124#endif 124#endif
125 125
@@ -129,7 +129,7 @@ static struct extent_state *alloc_extent_state(gfp_t mask)
129 state->state = 0; 129 state->state = 0;
130 state->private = 0; 130 state->private = 0;
131 state->tree = NULL; 131 state->tree = NULL;
132#ifdef LEAK_DEBUG 132#if LEAK_DEBUG
133 spin_lock_irqsave(&leak_lock, flags); 133 spin_lock_irqsave(&leak_lock, flags);
134 list_add(&state->leak_list, &states); 134 list_add(&state->leak_list, &states);
135 spin_unlock_irqrestore(&leak_lock, flags); 135 spin_unlock_irqrestore(&leak_lock, flags);
@@ -144,11 +144,11 @@ static void free_extent_state(struct extent_state *state)
144 if (!state) 144 if (!state)
145 return; 145 return;
146 if (atomic_dec_and_test(&state->refs)) { 146 if (atomic_dec_and_test(&state->refs)) {
147#ifdef LEAK_DEBUG 147#if LEAK_DEBUG
148 unsigned long flags; 148 unsigned long flags;
149#endif 149#endif
150 WARN_ON(state->tree); 150 WARN_ON(state->tree);
151#ifdef LEAK_DEBUG 151#if LEAK_DEBUG
152 spin_lock_irqsave(&leak_lock, flags); 152 spin_lock_irqsave(&leak_lock, flags);
153 list_del(&state->leak_list); 153 list_del(&state->leak_list);
154 spin_unlock_irqrestore(&leak_lock, flags); 154 spin_unlock_irqrestore(&leak_lock, flags);
@@ -2983,7 +2983,7 @@ static struct extent_buffer *__alloc_extent_buffer(struct extent_io_tree *tree,
2983 gfp_t mask) 2983 gfp_t mask)
2984{ 2984{
2985 struct extent_buffer *eb = NULL; 2985 struct extent_buffer *eb = NULL;
2986#ifdef LEAK_DEBUG 2986#if LEAK_DEBUG
2987 unsigned long flags; 2987 unsigned long flags;
2988#endif 2988#endif
2989 2989
@@ -2991,7 +2991,7 @@ static struct extent_buffer *__alloc_extent_buffer(struct extent_io_tree *tree,
2991 eb->start = start; 2991 eb->start = start;
2992 eb->len = len; 2992 eb->len = len;
2993 mutex_init(&eb->mutex); 2993 mutex_init(&eb->mutex);
2994#ifdef LEAK_DEBUG 2994#if LEAK_DEBUG
2995 spin_lock_irqsave(&leak_lock, flags); 2995 spin_lock_irqsave(&leak_lock, flags);
2996 list_add(&eb->leak_list, &buffers); 2996 list_add(&eb->leak_list, &buffers);
2997 spin_unlock_irqrestore(&leak_lock, flags); 2997 spin_unlock_irqrestore(&leak_lock, flags);
@@ -3003,7 +3003,7 @@ static struct extent_buffer *__alloc_extent_buffer(struct extent_io_tree *tree,
3003 3003
3004static void __free_extent_buffer(struct extent_buffer *eb) 3004static void __free_extent_buffer(struct extent_buffer *eb)
3005{ 3005{
3006#ifdef LEAK_DEBUG 3006#if LEAK_DEBUG
3007 unsigned long flags; 3007 unsigned long flags;
3008 spin_lock_irqsave(&leak_lock, flags); 3008 spin_lock_irqsave(&leak_lock, flags);
3009 list_del(&eb->leak_list); 3009 list_del(&eb->leak_list);