Calling abort_reshape() in imsm_manage_reshape() is unnecessary in case of an error because it is handled by reshape_array(). Calling it when reshape completes successfully is also unnecessary and leads to a race condition: - reshape ends - mdadm calls abort_reshape() -> sets sync_action to idle - MD_RECOVERY_INTR is set and md_reap_sync_thread() does not finish the reshape Signed-off-by: Artur Paszkiewicz <artur.paszkiewicz@xxxxxxxxx> Signed-off-by: Konrad Dabrowski <konrad.dabrowski@xxxxxxxxx> --- super-intel.c | 1 - 1 file changed, 1 deletion(-) diff --git a/super-intel.c b/super-intel.c index 95a72b6..e609e0c 100644 --- a/super-intel.c +++ b/super-intel.c @@ -10601,7 +10601,6 @@ static int imsm_manage_reshape( ret_val = 1; abort: free(buf); - abort_reshape(sra); return ret_val; } -- 2.1.4 -- To unsubscribe from this list: send the line "unsubscribe linux-raid" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html