Added test for array degradation for spare-same-slot

spare-same-slot allows re-adding of missing array member with disk
re-inserted into the same slot where previous member was plugged in.
If in the meantime another spare has been used for recovery, same slot
cookie should be ignored.

Signed-off-by: Przemyslaw Czarnowski <przemyslaw.hawrylewicz.czarnowski@intel.com>
Signed-off-by: NeilBrown <neilb@suse.de>
This commit is contained in:
Przemyslaw Czarnowski 2010-12-26 22:33:14 +11:00 committed by NeilBrown
parent 5be68a0762
commit b4924220f1
1 changed files with 3 additions and 1 deletions

View File

@ -966,11 +966,13 @@ static int array_try_spare(char *devname, int *dfdp, struct dev_policy *pol,
* arrays/containers that match 'target'.
* If 'target' is set and 'bare' is true, we prefer the
* array which matches 'target'.
* target is considered only if we deal with degraded array
*/
if (target) {
if (strcmp(target->metadata, mp->metadata) == 0 &&
memcmp(target->uuid, mp->uuid,
sizeof(target->uuid)) == 0) {
sizeof(target->uuid)) == 0 &&
sra->array.failed_disks > 0) {
/* This is our target!! */
if (chosen)
sysfs_free(chosen);