Fix LVM snapshot deadlock: it is a bad idea to try to flush all running
transactions while we already hold the superblock lock. Drop the sb lock
while we flush.
This only affects kernels that have the extra LVM VFS locking added in
for filesystem quiescing on snapshots.
--- linux-2.4-ext3merge/fs/ext3/super.c.=K0000=.orig Thu Sep 26 12:19:14 2002
+++ linux-2.4-ext3merge/fs/ext3/super.c Thu Sep 26 12:25:37 2002
@@ -1588,8 +1588,10 @@
journal_t *journal = EXT3_SB(sb)->s_journal;
/* Now we set up the journal barrier. */
+ unlock_super(sb);
journal_lock_updates(journal);
journal_flush(journal);
+ lock_super(sb);
/* Journal blocked and flushed, clear needs_recovery flag. */
EXT3_CLEAR_INCOMPAT_FEATURE(sb, EXT3_FEATURE_INCOMPAT_RECOVER);