[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <4807762A.9090202@tiscali.nl>
Date: Thu, 17 Apr 2008 18:09:14 +0200
From: Roel Kluin <12o3l@...cali.nl>
To: alex@...sterfs.com, sct@...hat.com, akpm@...ux-foundation.org,
adilger@...sterfs.com
CC: linux-ext4@...r.kernel.org, lkml <linux-kernel@...r.kernel.org>
Subject: [PATCH] mballoc: fix hot spins after err_freebuddy and err_freemeta
ext4_mb_init_backend() has a variable i of type ext4_group_t. which is typedefined
in include/linux/ext4_fs_i.h:34 to unsigned long. Since unsigned, i >= 0 is always
true, so fix hot spins after err_freebuddy and err_freemeta.
Signed-off-by: Roel Kluin <12o3l@...cali.nl>
---
diff --git a/fs/ext4/mballoc.c b/fs/ext4/mballoc.c
index ef97f19..afba9b8 100644
--- a/fs/ext4/mballoc.c
+++ b/fs/ext4/mballoc.c
@@ -2618,14 +2618,14 @@ static int ext4_mb_init_backend(struct super_block *sb)
return 0;
err_freebuddy:
- while (i >= 0) {
+ do {
kfree(ext4_get_group_info(sb, i));
- i--;
- }
- i = num_meta_group_infos;
+ } while (i-- != 0);
+ i = num_meta_group_infos - 1;
err_freemeta:
- while (--i >= 0)
+ do {
kfree(sbi->s_group_info[i]);
+ } while (i-- != 0);
iput(sbi->s_buddy_cache);
err_freesgi:
kfree(sbi->s_group_info);
--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists