diff --git a/fs/ocfs2/super.c b/fs/ocfs2/super.c index c034b5129c1e..19436d1ff57f 100644 --- a/fs/ocfs2/super.c +++ b/fs/ocfs2/super.c @@ -1209,13 +1209,14 @@ static void ocfs2_dismount_volume(struct super_block *sb, int mnt_err) tmp = ocfs2_request_umount_vote(osb); if (tmp < 0) mlog_errno(tmp); - - if (osb->slot_num != OCFS2_INVALID_SLOT) - ocfs2_put_slot(osb); - - ocfs2_super_unlock(osb, 1); } + if (osb->slot_num != OCFS2_INVALID_SLOT) + ocfs2_put_slot(osb); + + if (osb->dlm) + ocfs2_super_unlock(osb, 1); + ocfs2_release_system_inodes(osb); if (osb->dlm) {