aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2012-06-12 18:28:58 +0300
committerLinus Torvalds <torvalds@linux-foundation.org>2012-06-12 18:28:58 +0300
commit266ae4e6155419b3904f45b132db26d4b6fdceaf (patch)
treee1a7105c683e4570c0c92efc4df77d17755084e2
parentMerge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu (diff)
parentwriteback: Fix lock imbalance in writeback_sb_inodes() (diff)
downloadlinux-dev-266ae4e6155419b3904f45b132db26d4b6fdceaf.tar.xz
linux-dev-266ae4e6155419b3904f45b132db26d4b6fdceaf.zip
Merge tag 'writeback-lock-fix' of git://git.kernel.org/pub/scm/linux/kernel/git/wfg/linux
Pull writeback locking fix from Wu Fengguang: "fix unbalanced wb->list_lock in 3.5-rc1" * tag 'writeback-lock-fix' of git://git.kernel.org/pub/scm/linux/kernel/git/wfg/linux: writeback: Fix lock imbalance in writeback_sb_inodes()
-rw-r--r--fs/fs-writeback.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/fs/fs-writeback.c b/fs/fs-writeback.c
index 8d2fb8c88cf3..41a3ccff18d8 100644
--- a/fs/fs-writeback.c
+++ b/fs/fs-writeback.c
@@ -664,6 +664,7 @@ static long writeback_sb_inodes(struct super_block *sb,
/* Wait for I_SYNC. This function drops i_lock... */
inode_sleep_on_writeback(inode);
/* Inode may be gone, start again */
+ spin_lock(&wb->list_lock);
continue;
}
inode->i_state |= I_SYNC;