mirror of
https://github.com/torvalds/linux.git
synced 2024-11-17 01:22:07 +00:00
Fix a race in the DM cache target that caused dirty blocks to be marked
as clean. This could cause no writeback to occur or spurious dirty block counts. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQEcBAABAgAGBQJUEG6eAAoJEMUj8QotnQNabuUIALF4UnJov622hmGIcBC91j8m HRD1gNqu8hOLrtQEP+E7fdrDwHqyxAdL2kFN6nowbvuWmSVAUpQmsLCbXOvQOttx mELPFSOw2s1FpBbt63pIi8icAPCvzJYeR+jGN3m//b0eVFkmQ6xQGazhbd3JF+xP mHeEVNTF7acbUYDdfejF8kNJcUbpU63IF5UzRGOXMTNZ2DnFvEiBJHtgXJKiIkhN MhZNFgqeRdIppoDImnGJ9kQrWzoXGIpAXbxFbvjLofpr6HK2FxWLayeib0Jdm+Ze znHjSqyRRBhtszk/c8Rxqzy9dotMi3fI/O4pVkziSMYKCjtt9dCRFbP1Gkwaf3w= =6q2l -----END PGP SIGNATURE----- Merge tag 'dm-3.17-fix2' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm Pull device mapper fix from Mike Snitzer: "Fix a race in the DM cache target that caused dirty blocks to be marked as clean. This could cause no writeback to occur or spurious dirty block counts" * tag 'dm-3.17-fix2' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm: dm cache: fix race causing dirty blocks to be marked as clean
This commit is contained in:
commit
186cec317e
@ -895,8 +895,8 @@ static void migration_success_pre_commit(struct dm_cache_migration *mg)
|
||||
struct cache *cache = mg->cache;
|
||||
|
||||
if (mg->writeback) {
|
||||
cell_defer(cache, mg->old_ocell, false);
|
||||
clear_dirty(cache, mg->old_oblock, mg->cblock);
|
||||
cell_defer(cache, mg->old_ocell, false);
|
||||
cleanup_migration(mg);
|
||||
return;
|
||||
|
||||
@ -951,13 +951,13 @@ static void migration_success_post_commit(struct dm_cache_migration *mg)
|
||||
}
|
||||
|
||||
} else {
|
||||
clear_dirty(cache, mg->new_oblock, mg->cblock);
|
||||
if (mg->requeue_holder)
|
||||
cell_defer(cache, mg->new_ocell, true);
|
||||
else {
|
||||
bio_endio(mg->new_ocell->holder, 0);
|
||||
cell_defer(cache, mg->new_ocell, false);
|
||||
}
|
||||
clear_dirty(cache, mg->new_oblock, mg->cblock);
|
||||
cleanup_migration(mg);
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user