summaryrefslogtreecommitdiffstats
path: root/drivers/hwmon/hwmon.c
diff options
context:
space:
mode:
authorDan Williams <dan.j.williams@intel.com>2007-09-24 19:06:13 +0200
committerDan Williams <dan.j.williams@intel.com>2007-09-24 22:23:35 +0200
commite4d84909dd48b5e5806a5d18b881e1ca1610ba9b (patch)
tree85aa712ebc034a31b9a2a5db2f0e7ce4951cb440 /drivers/hwmon/hwmon.c
parentasync_tx: fix dma_wait_for_async_tx (diff)
downloadlinux-e4d84909dd48b5e5806a5d18b881e1ca1610ba9b.tar.xz
linux-e4d84909dd48b5e5806a5d18b881e1ca1610ba9b.zip
raid5: fix 2 bugs in ops_complete_biofill
1/ ops_complete_biofill tried to avoid calling handle_stripe since all the state necessary to return read completions is available. However the process of determining whether more read requests are pending requires locking the stripe (to block add_stripe_bio from updating dev->toead). ops_complete_biofill can run in tasklet context, so rather than upgrading all the stripe locks from spin_lock to spin_lock_bh this patch just unconditionally reschedules handle_stripe after completing the read request. 2/ ops_complete_biofill needlessly qualified processing R5_Wantfill with dev->toread. The result being that the 'biofill' pending bit is cleared before handling the pending read-completions on dev->read. R5_Wantfill can be unconditionally handled because the 'biofill' pending bit prevents new R5_Wantfill requests from being seen by ops_run_biofill and ops_complete_biofill. Found-by: Yuri Tikhonov <yur@emcraft.com> [neilb@suse.de: simpler fix for bug 1 than moving code] Signed-off-by: NeilBrown <neilb@suse.de> Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Diffstat (limited to 'drivers/hwmon/hwmon.c')
0 files changed, 0 insertions, 0 deletions