aboutsummaryrefslogtreecommitdiffstats
path: root/fs/fs-writeback.c
diff options
context:
space:
mode:
authorJan Kara <jack@suse.cz>2012-07-03 10:45:27 -0400
committerAl Viro <viro@zeniv.linux.org.uk>2012-07-22 15:58:18 -0400
commit6eedc70150d55b5885800eb6664ea226dc2cb66f (patch)
treee0d0762e047d1fae5d7b6ead1214545bcb205f4e /fs/fs-writeback.c
parent9e9ad5f408889db6038a59b38ede29ff1ba9ef2f (diff)
vfs: Move noop_backing_dev_info check from sync into writeback
In principle, a filesystem may want to have ->sync_fs() called during sync(1) although it does not have a bdi (i.e. s_bdi is set to noop_backing_dev_info). Only writeback code really needs bdi set to something reasonable. So move the checks where they are more logical. Reviewed-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Jan Kara <jack@suse.cz> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs/fs-writeback.c')
-rw-r--r--fs/fs-writeback.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/fs/fs-writeback.c b/fs/fs-writeback.c
index 41a3ccff18d8..8f660dd6137a 100644
--- a/fs/fs-writeback.c
+++ b/fs/fs-writeback.c
@@ -1315,6 +1315,8 @@ void writeback_inodes_sb_nr(struct super_block *sb,
1315 .reason = reason, 1315 .reason = reason,
1316 }; 1316 };
1317 1317
1318 if (sb->s_bdi == &noop_backing_dev_info)
1319 return;
1318 WARN_ON(!rwsem_is_locked(&sb->s_umount)); 1320 WARN_ON(!rwsem_is_locked(&sb->s_umount));
1319 bdi_queue_work(sb->s_bdi, &work); 1321 bdi_queue_work(sb->s_bdi, &work);
1320 wait_for_completion(&done); 1322 wait_for_completion(&done);
@@ -1398,6 +1400,9 @@ void sync_inodes_sb(struct super_block *sb)
1398 .reason = WB_REASON_SYNC, 1400 .reason = WB_REASON_SYNC,
1399 }; 1401 };
1400 1402
1403 /* Nothing to do? */
1404 if (sb->s_bdi == &noop_backing_dev_info)
1405 return;
1401 WARN_ON(!rwsem_is_locked(&sb->s_umount)); 1406 WARN_ON(!rwsem_is_locked(&sb->s_umount));
1402 1407
1403 bdi_queue_work(sb->s_bdi, &work); 1408 bdi_queue_work(sb->s_bdi, &work);