On Fri, Mar 22 2013 at 4:11pm -0400, Darrick J. Wong <darrick.wong@xxxxxxxxxx> wrote: > The new writethrough strategy for dm-cache issues a bio to the origin device, > remaps the bio to the cache device, and issues the bio to the cache device. > However, the block layer modifies bi_sector and bi_size, so we need to preserve > these or else nothing gets written to the cache (bi_size == 0). This fixes the > problem where someone writes a block through the cache, but a subsequent reread > (from the cache) returns old contents. Your writethrough blkid test results are certainly strange. But I'm not aware of where the block layer would modify bi_size and bi_sector; please elaborate. I cannot reproduce your original report. I developed 'test_writethrough_ext4_uuids_match', apologies for the ruby code: def test_writethrough_ext4_uuids_match size = meg(10) # wipe the origin to ensure we don't accidentally have the same # data on it. with_standard_linear(:data_size => size) do |origin| wipe_device(origin) end uuid = "deadbeef-cafe-dead-beef-cafedeadbeef" # format the cache device with a specific uuid with_standard_cache(:format => true, :io_mode => :writethrough, :data_size => size) do |cache| fs = FS::file_system(:ext4, cache) fs.format(:uuid => uuid) FS::assert_fs_uuid(uuid, cache) end # origin should have the same uuid as the cache with_standard_linear(:data_size => size) do |origin| FS::assert_fs_uuid(uuid, origin) end end This test was committed to the 'devel' branch of my thinp-test-suite tree: git://github.com/snitm/thinp-test-suite.git Also the existing 'test_writethrough' test works fine. So for now: Nacked-by: Mike Snitzer <snitzer@xxxxxxxxxx> -- dm-devel mailing list dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel