imsm: don't call abort_reshape() in imsm_manage_reshape()
PATCH RESEND 1/1 imsm: don't call abort_reshape() in imsm_manage_reshape()
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
--- super-intel.c | 1 - 1 file changed, 1 deletion(-)
super-intel.c +0 -1
@@ -10601,7 +10601,6 @@ static int imsm_manage_reshape( ret_val =1 ; abort:free (buf); -abort_reshape (sra);return ret_val; }
Signature · 1 line
2.1.4
Quoted 29 lines · Artur Paszkiewicz
Calling
abort_reshape()inimsm_manage_reshape()is unnecessary in case of an error because it is handled byreshape_array(). Calling it when reshape completes successfully is also unnecessary and leads to a race condition:
- reshape ends
- mdadm callsabort_reshape()-> setssync_actionto idle
-MD_RECOVERY_INTRis set andmd_reap_sync_thread()does not finish the reshapeSigned-off-by Artur Paszkiewicz <[email protected]>Signed-off-by Konrad Dabrowski <[email protected]>--- super-intel.c | 1 - 1 file changed, 1 deletion(-)super-intel.c +0
-1@@ -10601,7 +10601,6 @@ static int imsm_manage_reshape( ret_val =1 ; abort:free (buf); -abort_reshape (sra);return ret_val; }Signature · 1 line
2.1.4
Thanks for the resend.
Applied now.
NeilBrown