summaryrefslogtreecommitdiff
path: root/fs
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2012-06-12 19:28:58 +0400
committerLinus Torvalds <torvalds@linux-foundation.org>2012-06-12 19:28:58 +0400
commit266ae4e6155419b3904f45b132db26d4b6fdceaf (patch)
treee1a7105c683e4570c0c92efc4df77d17755084e2 /fs
parent7452ca511c217b9d7bbadf4680018555c7d9a7ce (diff)
parentead188f9f930fb5d7f0c49315a7fce3d8bd16b7e (diff)
downloadlinux-266ae4e6155419b3904f45b132db26d4b6fdceaf.tar.xz
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()
Diffstat (limited to 'fs')
-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;