ocfs2: Don't oops in ocfs2_kill_sb on a failed mount
If we fail to mount the filesystem, we have to be careful not to dereference uninitialized structures in ocfs2_kill_sb. Signed-off-by: Jan Kara <jack@suse.cz> Signed-off-by: Joel Becker <joel.becker@oracle.com>
This commit is contained in:
Родитель
60e2ec4866
Коммит
5fd1318937
|
@ -1218,13 +1218,17 @@ static void ocfs2_kill_sb(struct super_block *sb)
|
|||
{
|
||||
struct ocfs2_super *osb = OCFS2_SB(sb);
|
||||
|
||||
/* Failed mount? */
|
||||
if (!osb || atomic_read(&osb->vol_state) == VOLUME_DISABLED)
|
||||
goto out;
|
||||
|
||||
/* Prevent further queueing of inode drop events */
|
||||
spin_lock(&dentry_list_lock);
|
||||
ocfs2_set_osb_flag(osb, OCFS2_OSB_DROP_DENTRY_LOCK_IMMED);
|
||||
spin_unlock(&dentry_list_lock);
|
||||
/* Wait for work to finish and/or remove it */
|
||||
cancel_work_sync(&osb->dentry_lock_work);
|
||||
|
||||
out:
|
||||
kill_block_super(sb);
|
||||
}
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче