Niels de Vos <ndevos@xxxxxxxxxx> writes: > Executing an fsync() on a file-descriptor of a partition flushes the > caches for that partition by calling blkdev_issue_flush(). However, it > seems that reading data through the parent device will still return the > old cached data. You are mixing up two different caches. blkdev_issue_flush flushes the hard disk's cache, if it exists, and is advertised as a write-back cache. The cache that doesn't get flushed is the page cache, since you are accessing the same disk blocks via different devices (the whole device and the partition). Nevertheless, the fix looks fine to me. There shouldn't be much cached for the whole block device if there are partitions, so this shouldn't generate an I/O storm or flush out buffers that are otherwise useful. Reviewed-by: Jeff Moyer <jmoyer@xxxxxxxxxx> -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html