diff options
-rw-r--r-- | super-ddf.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/super-ddf.c b/super-ddf.c index 5e51c4c..9ea62e0 100644 --- a/super-ddf.c +++ b/super-ddf.c @@ -3718,6 +3718,10 @@ static struct mdinfo *ddf_activate_spare(struct active_array *a, } else if (ddf->phys->entries[dl->pdnum].type & __cpu_to_be16(DDF_Global_Spare)) { is_global = 1; + } else if (!(ddf->phys->entries[dl->pdnum].state & + __cpu_to_be16(DDF_Failed))) { + /* we can possibly use some of this */ + is_global = 1; } if ( ! (is_dedicated || (is_global && global_ok))) { |