summaryrefslogtreecommitdiffstats
path: root/fs/ocfs2/super.c
diff options
context:
space:
mode:
authorRafael J. Wysocki2009-09-10 00:02:02 +0200
committerRafael J. Wysocki2009-09-10 00:02:02 +0200
commitbf992fa2bc1ad1bb2aeb0bdfadb43f236b9297fd (patch)
treed67f525c76b66956ba7ca0d40bc0fcda0e414700 /fs/ocfs2/super.c
parentPM: Run-time PM platform device bus support (diff)
parentaoe: allocate unused request_queue for sysfs (diff)
downloadkernel-qcow2-linux-bf992fa2bc1ad1bb2aeb0bdfadb43f236b9297fd.tar.gz
kernel-qcow2-linux-bf992fa2bc1ad1bb2aeb0bdfadb43f236b9297fd.tar.xz
kernel-qcow2-linux-bf992fa2bc1ad1bb2aeb0bdfadb43f236b9297fd.zip
Merge branch 'master' into for-linus
Diffstat (limited to 'fs/ocfs2/super.c')
-rw-r--r--fs/ocfs2/super.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/fs/ocfs2/super.c b/fs/ocfs2/super.c
index b0ee0fdf799a..a3f8871d21fd 100644
--- a/fs/ocfs2/super.c
+++ b/fs/ocfs2/super.c
@@ -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);
}