summaryrefslogtreecommitdiffstats
path: root/drivers/acpi/scan.c
diff options
context:
space:
mode:
authorNeilBrown <neilb@suse.de>2009-02-25 13:18:47 +1100
committerNeilBrown <neilb@suse.de>2009-02-25 13:18:47 +1100
commit73d5c38a9536142e062c35997b044e89166e063b (patch)
tree68fd385cbdee1fa75269974ef210d53a0ae5e311 /drivers/acpi/scan.c
parent78200d45cde2a79c0d0ae0407883bb264caa3c18 (diff)
downloadlinux-73d5c38a9536142e062c35997b044e89166e063b.tar.gz
linux-73d5c38a9536142e062c35997b044e89166e063b.tar.bz2
linux-73d5c38a9536142e062c35997b044e89166e063b.zip
md: avoid races when stopping resync.
There has been a race in raid10 and raid1 for a long time which has only recently started showing up due to a scheduler changed. When a sync_read request finishes, as soon as reschedule_retry is called, another thread can mark the resync request as having completed, so md_do_sync can finish, ->stop can be called, and ->conf can be freed. So using conf after reschedule_retry is not safe. Similarly, when finishing a sync_write, calling md_done_sync must be the last thing we do, as it allows a chain of events which will free conf and other data structures. The first of these requires action in raid10.c The second requires action in raid1.c and raid10.c Cc: stable@kernel.org Signed-off-by: NeilBrown <neilb@suse.de>
Diffstat (limited to 'drivers/acpi/scan.c')
0 files changed, 0 insertions, 0 deletions