From d7441a61c1980162f63bcec5bed9b05a44bd52dd Mon Sep 17 00:00:00 2001 From: johann Date: Thu, 24 Sep 2009 12:20:49 +0000 Subject: [PATCH] Branch HEAD b=19763 i=girish i=dmitry Skip uninit group on quotacheck --- lustre/lvfs/fsfilt_ext3.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/lustre/lvfs/fsfilt_ext3.c b/lustre/lvfs/fsfilt_ext3.c index 0e263ab..9fe0f70 100644 --- a/lustre/lvfs/fsfilt_ext3.c +++ b/lustre/lvfs/fsfilt_ext3.c @@ -1995,6 +1995,19 @@ static int fsfilt_ext3_quotacheck(struct super_block *sb, /* check quota and update in hash */ for (group = 0; group < sbi->s_groups_count; group++) { + struct ext3_group_desc *desc; + desc = get_group_desc(sb, group); + if (!desc) + GOTO(out, -EIO); + + spin_lock(sb_bgl_lock(sbi, group)); + if (desc->bg_flags & cpu_to_le16(EXT3_BG_INODE_UNINIT)) { + /* no inode in use in this group, just skip it */ + spin_unlock(sb_bgl_lock(sbi, group)); + continue; + } + spin_unlock(sb_bgl_lock(sbi, group)); + ino = group * sbi->s_inodes_per_group + 1; bitmap_bh = ext3_read_inode_bitmap(sb, group); if (!bitmap_bh) { -- 1.8.3.1