[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <1223525160-9887-21-git-send-email-tytso@mit.edu>
Date: Thu, 9 Oct 2008 00:05:38 -0400
From: Theodore Ts'o <tytso@....edu>
To: linux-ext4@...r.kernel.org, linux-kernel@...r.kernel.org
Cc: Li Zefan <lizf@...fujitsu.com>, "Theodore Ts'o" <tytso@....edu>
Subject: [PATCH 20/42] ext4: add missing unlock in ext4_check_descriptors() on error path
From: Li Zefan <lizf@...fujitsu.com>
If there group descriptors are corrupted we need unlock the block
group lock before returning from the function; else we will oops when
freeing a spinlock which is still being held.
Signed-off-by: Li Zefan <lizf@...fujitsu.com>
Signed-off-by: "Theodore Ts'o" <tytso@....edu>
---
fs/ext4/super.c | 4 +++-
1 files changed, 3 insertions(+), 1 deletions(-)
diff --git a/fs/ext4/super.c b/fs/ext4/super.c
index 64e1c21..8175318 100644
--- a/fs/ext4/super.c
+++ b/fs/ext4/super.c
@@ -1623,8 +1623,10 @@ static int ext4_check_descriptors(struct super_block *sb)
"Checksum for group %lu failed (%u!=%u)\n",
i, le16_to_cpu(ext4_group_desc_csum(sbi, i,
gdp)), le16_to_cpu(gdp->bg_checksum));
- if (!(sb->s_flags & MS_RDONLY))
+ if (!(sb->s_flags & MS_RDONLY)) {
+ spin_unlock(sb_bgl_lock(sbi, i));
return 0;
+ }
}
spin_unlock(sb_bgl_lock(sbi, i));
if (!flexbg_flag)
--
1.5.6.1.205.ge2c7.dirty
--
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