> Had you actually read the fsync_dev()? Let me make it clear: you are
> flushing _buffer_ cache upon blkdev_put(bdev, BDEV_FILE). It was
> the right thing when file access went through buffer cache. It's
> blatantly wrong with page cache.
Well, fsync_dev will flush anything on the dirty list. Since
blkdev_commit_write puts things on the dirty list, andrea's current
code will flush changes through the page cache.
The biggest exception is blkdev_writepage directly submits the io instead
of marking the buffers dirty. This means the buffers won't be on
the locked/dirty list, and they won't get waited on. Similar problem
for direct io.
The fix shouldn't be too bad, I'll code it up...
-chris
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/