ext4: fix scheduling in atomic on group checksum failure
authorJan Kara <jack@suse.cz>
Fri, 12 Feb 2016 04:15:12 +0000 (23:15 -0500)
committerTheodore Ts'o <tytso@mit.edu>
Fri, 12 Feb 2016 04:15:12 +0000 (23:15 -0500)
commit05145bd799e498ce4e3b5145894174ee881f02b0
treeabcedec57a068d5f586ac4c6d16c7629ffca07db
parentff978b09f973db0d0597704eba350a994d7729e6
ext4: fix scheduling in atomic on group checksum failure

When block group checksum is wrong, we call ext4_error() while holding
group spinlock from ext4_init_block_bitmap() or
ext4_init_inode_bitmap() which results in scheduling while in atomic.
Fix the issue by calling ext4_error() later after dropping the spinlock.

CC: stable@vger.kernel.org
Reported-by: Dmitry Vyukov <dvyukov@google.com>
Signed-off-by: Jan Kara <jack@suse.cz>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
fs/ext4/balloc.c
fs/ext4/ialloc.c