summaryrefslogtreecommitdiffstats
path: root/drivers/md/dm-zero.c
diff options
context:
space:
mode:
authorMikulas Patocka <mpatocka@redhat.com>2008-07-21 12:00:34 +0100
committerAlasdair G Kergon <agk@redhat.com>2008-07-21 12:00:34 +0100
commita8d41b59f3f5a7ac19452ef442a7fc1b5fa17366 (patch)
treef9435bed2d582e4cd3e91e4d6fb18a18f62aa019 /drivers/md/dm-zero.c
parentcd45daffd1f7b53aac0835b23e97f814ec3f10dc (diff)
downloadlinux-a8d41b59f3f5a7ac19452ef442a7fc1b5fa17366.tar.gz
linux-a8d41b59f3f5a7ac19452ef442a7fc1b5fa17366.tar.bz2
linux-a8d41b59f3f5a7ac19452ef442a7fc1b5fa17366.zip
dm snapshot: fix race during exception creation
Fix a race condition that returns incorrect data when a write causes an exception to be allocated whilst a read is still in flight. The race condition happens as follows: * A read to non-reallocated sector in the snapshot is submitted so that the read is routed to the original device. * A write to the original device is submitted. The write causes an exception that reallocates the block. The write proceeds. * The original read is dequeued and reads the wrong data. This race can be triggered with CFQ scheduler and one thread writing and multiple threads reading simultaneously. (This patch relies upon the earlier dm-kcopyd-per-device.patch to avoid a deadlock.) Signed-off-by: Mikulas Patocka <mpatocka@redhat.com> Signed-off-by: Alasdair G Kergon <agk@redhat.com>
Diffstat (limited to 'drivers/md/dm-zero.c')
0 files changed, 0 insertions, 0 deletions