diff options
author | Theodore Ts'o <tytso@mit.edu> | 2012-08-10 13:57:52 -0400 |
---|---|---|
committer | Theodore Ts'o <tytso@mit.edu> | 2012-08-17 09:06:06 -0400 |
commit | 7a4c5de27efa4c2ecca87af0a3deea63446367e2 (patch) | |
tree | 9f56c68e86e9a379621ee49e0b6d05dae8b01f9e /fs/locks.c | |
parent | 7e731bc9a12339f344cddf82166b82633d99dd86 (diff) |
ext4: don't call ext4_error while block group is locked
While in ext4_validate_block_bitmap(), if an block allocation bitmap
is found to be invalid, we call ext4_error() while the block group is
still locked. This causes ext4_commit_super() to call a function
which might sleep while in an atomic context.
There's no need to keep the block group locked at this point, so hoist
the ext4_error() call up to ext4_validate_block_bitmap() and release
the block group spinlock before calling ext4_error().
The reported stack trace can be found at:
http://article.gmane.org/gmane.comp.file-systems.ext4/33731
Reported-by: Dave Jones <davej@redhat.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Cc: stable@vger.kernel.org
Diffstat (limited to 'fs/locks.c')
0 files changed, 0 insertions, 0 deletions