diff options
author | Jan Kara <jack@suse.cz> | 2012-07-03 10:45:27 -0400 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2012-07-22 15:58:18 -0400 |
commit | 6eedc70150d55b5885800eb6664ea226dc2cb66f (patch) | |
tree | e0d0762e047d1fae5d7b6ead1214545bcb205f4e /fs/fs-writeback.c | |
parent | 9e9ad5f408889db6038a59b38ede29ff1ba9ef2f (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.c | 5 |
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); |