aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--fs/fs-writeback.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/fs/fs-writeback.c b/fs/fs-writeback.c
index 54b3c31c2f0d..30f6f27d5a59 100644
--- a/fs/fs-writeback.c
+++ b/fs/fs-writeback.c
@@ -1171,6 +1171,8 @@ void __mark_inode_dirty(struct inode *inode, int flags)
1171 bool wakeup_bdi = false; 1171 bool wakeup_bdi = false;
1172 bdi = inode_to_bdi(inode); 1172 bdi = inode_to_bdi(inode);
1173 1173
1174 spin_unlock(&inode->i_lock);
1175 spin_lock(&bdi->wb.list_lock);
1174 if (bdi_cap_writeback_dirty(bdi)) { 1176 if (bdi_cap_writeback_dirty(bdi)) {
1175 WARN(!test_bit(BDI_registered, &bdi->state), 1177 WARN(!test_bit(BDI_registered, &bdi->state),
1176 "bdi-%s not registered\n", bdi->name); 1178 "bdi-%s not registered\n", bdi->name);
@@ -1185,8 +1187,6 @@ void __mark_inode_dirty(struct inode *inode, int flags)
1185 wakeup_bdi = true; 1187 wakeup_bdi = true;
1186 } 1188 }
1187 1189
1188 spin_unlock(&inode->i_lock);
1189 spin_lock(&bdi->wb.list_lock);
1190 inode->dirtied_when = jiffies; 1190 inode->dirtied_when = jiffies;
1191 list_move(&inode->i_wb_list, &bdi->wb.b_dirty); 1191 list_move(&inode->i_wb_list, &bdi->wb.b_dirty);
1192 spin_unlock(&bdi->wb.list_lock); 1192 spin_unlock(&bdi->wb.list_lock);