On Wednesday September 5, ashutosh@xxxxxxxxxxxxxx wrote: > Dear Neil, > > > I can see what the problem is. It will take a little while to figure > > out what the "correct" fix it, but a quick fix to get you out of > > trouble would be to remove the lines: > > > > if (info->array.utime > __le64_to_cpu(bsb.mtime) + 3600 || > > info->array.utime < __le64_to_cpu(bsb.mtime)) > > continue; /* time stamp is too bad */ > > I've applied the patch that you suggested but I'm getting exactly the > same result: > > > root@videoserver:~/mdadm-2.6.3# ./mdadm --assemble /dev/md1 > > mdadm: Failed to restore critical section for reshape, sorry. > > Please advise me on any more information that I should provide or > make any other suggestions/advices. > At the top of Grow_restart (in Grow.c), just put return 0; That will definitely get you your array back. I think the correct fix will be to put: if (info->reshape_progress > SOME_NUMBER) return 0; at the top of Grow_restart. I just have to review exactly how it works to make sure I pick the correct "SOME_NUMBER". Also if (__le64_to_cpu(bsb.length) < info->reshape_progress) continue; /* No new data here */ might need to become if (__le64_to_cpu(bsb.length) < info->reshape_progress) return 0; /* No new data here */ but I need to think carefully about that too. NeilBrown - 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