osd: Attribute re-reads in optimised EC
There were some bugs in attribute reads during recovery in optimised
EC where the attribute read failed. There were two scenarios:
1. It was not necessary to do any further reads to recover the data. This
can happen during recovery of many shards.
2. The re-read could be honoured from non-primary shards. There are
sometimes multiple copies of the shard whcih can be used, so a failed read
on one OSD can be replaced by a read from another.
Signed-off-by: Alex Ainscow <aainscow@uk.ibm.com>
(cherry picked from commit
417fb71c9b5628726d3217909ba1b6d3e7bf251a)