X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=fs%2Ffs-writeback.c;h=9f4935b8f2087eb44475bf7fb8aab20f44889e86;hb=3711d86a2de17e967b576af8b8a1e9351a7d1466;hp=30f6f27d5a59a51a4c89334b457b227318e860d7;hpb=89dc77bcdabf42ec99553f5837aa4bb8255a088c;p=~andy%2Flinux diff --git a/fs/fs-writeback.c b/fs/fs-writeback.c index 30f6f27d5a5..9f4935b8f20 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) { struct super_block *sb = inode->i_sb; - if (strcmp(sb->s_type->name, "bdev") == 0) + if (sb_is_blkdev_sb(sb)) return inode->i_mapping->backing_dev_info; return sb->s_bdi; @@ -251,11 +251,13 @@ static int move_expired_inodes(struct list_head *delaying_queue, if (work->older_than_this && inode_dirtied_after(inode, *work->older_than_this)) break; + list_move(&inode->i_wb_list, &tmp); + moved++; + if (sb_is_blkdev_sb(inode->i_sb)) + continue; if (sb && sb != inode->i_sb) do_sb_sort = 1; sb = inode->i_sb; - list_move(&inode->i_wb_list, &tmp); - moved++; } /* just one sb in list, splice to dispatch_queue and we're done */