diff options
Diffstat (limited to 'fs/fs-writeback.c')
-rw-r--r-- | fs/fs-writeback.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/fs/fs-writeback.c b/fs/fs-writeback.c index 30f6f27d5a59..9f4935b8f208 100644 --- a/fs/fs-writeback.c +++ b/fs/fs-writeback.c | |||
@@ -69,7 +69,7 @@ static inline struct backing_dev_info *inode_to_bdi(struct inode *inode) | |||
69 | { | 69 | { |
70 | struct super_block *sb = inode->i_sb; | 70 | struct super_block *sb = inode->i_sb; |
71 | 71 | ||
72 | if (strcmp(sb->s_type->name, "bdev") == 0) | 72 | if (sb_is_blkdev_sb(sb)) |
73 | return inode->i_mapping->backing_dev_info; | 73 | return inode->i_mapping->backing_dev_info; |
74 | 74 | ||
75 | return sb->s_bdi; | 75 | return sb->s_bdi; |
@@ -251,11 +251,13 @@ static int move_expired_inodes(struct list_head *delaying_queue, | |||
251 | if (work->older_than_this && | 251 | if (work->older_than_this && |
252 | inode_dirtied_after(inode, *work->older_than_this)) | 252 | inode_dirtied_after(inode, *work->older_than_this)) |
253 | break; | 253 | break; |
254 | list_move(&inode->i_wb_list, &tmp); | ||
255 | moved++; | ||
256 | if (sb_is_blkdev_sb(inode->i_sb)) | ||
257 | continue; | ||
254 | if (sb && sb != inode->i_sb) | 258 | if (sb && sb != inode->i_sb) |
255 | do_sb_sort = 1; | 259 | do_sb_sort = 1; |
256 | sb = inode->i_sb; | 260 | sb = inode->i_sb; |
257 | list_move(&inode->i_wb_list, &tmp); | ||
258 | moved++; | ||
259 | } | 261 | } |
260 | 262 | ||
261 | /* just one sb in list, splice to dispatch_queue and we're done */ | 263 | /* just one sb in list, splice to dispatch_queue and we're done */ |