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 3be57189efd5..cabdece4cb39 100644 --- a/fs/fs-writeback.c +++ b/fs/fs-writeback.c | |||
@@ -68,7 +68,7 @@ static inline struct backing_dev_info *inode_to_bdi(struct inode *inode) | |||
68 | { | 68 | { |
69 | struct super_block *sb = inode->i_sb; | 69 | struct super_block *sb = inode->i_sb; |
70 | 70 | ||
71 | if (strcmp(sb->s_type->name, "bdev") == 0) | 71 | if (sb_is_blkdev_sb(sb)) |
72 | return inode->i_mapping->backing_dev_info; | 72 | return inode->i_mapping->backing_dev_info; |
73 | 73 | ||
74 | return sb->s_bdi; | 74 | return sb->s_bdi; |
@@ -250,11 +250,13 @@ static int move_expired_inodes(struct list_head *delaying_queue, | |||
250 | if (work->older_than_this && | 250 | if (work->older_than_this && |
251 | inode_dirtied_after(inode, *work->older_than_this)) | 251 | inode_dirtied_after(inode, *work->older_than_this)) |
252 | break; | 252 | break; |
253 | list_move(&inode->i_wb_list, &tmp); | ||
254 | moved++; | ||
255 | if (sb_is_blkdev_sb(inode->i_sb)) | ||
256 | continue; | ||
253 | if (sb && sb != inode->i_sb) | 257 | if (sb && sb != inode->i_sb) |
254 | do_sb_sort = 1; | 258 | do_sb_sort = 1; |
255 | sb = inode->i_sb; | 259 | sb = inode->i_sb; |
256 | list_move(&inode->i_wb_list, &tmp); | ||
257 | moved++; | ||
258 | } | 260 | } |
259 | 261 | ||
260 | /* just one sb in list, splice to dispatch_queue and we're done */ | 262 | /* just one sb in list, splice to dispatch_queue and we're done */ |