summaryrefslogtreecommitdiff
path: root/drivers/md/bitmap.c
diff options
context:
space:
mode:
authorNeilBrown <neilb@suse.de>2013-06-11 04:57:09 (GMT)
committerNeilBrown <neilb@suse.de>2013-06-13 22:10:27 (GMT)
commit635f6416a2e983adac8ccf90bffbeed0c1a76454 (patch)
tree36389c7bd9b6dd43ec6055354e9e718d2147240d /drivers/md/bitmap.c
parentb29bebd66dbd492105668ec3515a5ffb0b25e4c1 (diff)
downloadlinux-fsl-qoriq-635f6416a2e983adac8ccf90bffbeed0c1a76454.tar.xz
md/raid10: locking changes for 'enough()'.
As 'enough' accesses conf->prev and conf->geo, which can change spontanously, it should guard against changes. This can be done with device_lock as start_reshape holds device_lock while updating 'geo' and end_reshape holds it while updating 'prev'. So 'error' needs to hold 'device_lock'. On the other hand, raid10_end_read_request knows which of the two it really wants to access, and as it is an active request on that one, the value cannot change underneath it. So change _enough to take flag rather than a pointer, pass the appropriate flag from raid10_end_read_request(), and remove the locking. All other calls to 'enough' are made with reconfig_mutex held, so neither 'prev' nor 'geo' can change. Signed-off-by: NeilBrown <neilb@suse.de>
Diffstat (limited to 'drivers/md/bitmap.c')
0 files changed, 0 insertions, 0 deletions