On Wed, 8 Sep 2010, Andreas Dilger wrote: > On 2010-09-08, at 10:59, Lukas Czerner wrote: > > +static inline int sb_issue_zeroout(struct super_block *sb, > > + sector_t block, sector_t nr_blocks) > > +{ > > + block <<= (sb->s_blocksize_bits - 9); > > + nr_blocks <<= (sb->s_blocksize_bits - 9); > > + return blkdev_issue_zeroout(sb->s_bdev, block, nr_blocks, GFP_KERNEL, > > + BLKDEV_IFL_WAIT | BLKDEV_IFL_BARRIER); > > +} > > While I can understand that we might need a barrier for this (to avoid > it being reordered with later writes that are using these blocks), I'm > not sure it needs to wait for previous IO to complete. We are waiting for submitted bios to finish. Especially in my patch it is needed, because I need to know how long it takes to get this IO on disk do determine next schedule time, depending on the IO load. I am not sure about this, but when it would not wait it will complete fairly quickly and my "IO throttling" code would be useless. And if I am wrong, and you are really convinced that it should not wait, what about sb_issue_discard(), it is also waiting for completion, is it ok? Regards. -Lukas > > Cheers, Andreas > -- To unsubscribe from this list: send the line "unsubscribe linux-ext4" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html