On Wed, Jan 06 2016, Artur Paszkiewicz wrote: > Waiting for reshape progress is done by using select() on sync_completed > to block until an exception condition is signalled on the > filedescriptor. This happens when the attribute's value is updated by > the kernel, but if the array is stopped when mdadm is blocked on > select() this will never happen, because this attribute is then removed > and apparently the kernel doesn't do sysfs_notify() when removing a > sysfs attribute. So set a 3 second timeout for the sysfs_wait() call. I wonder if we should fix that in the kernel somehow... I've applied this patch and the following one - thanks. NeilBrown > > Signed-off-by: Artur Paszkiewicz <artur.paszkiewicz@xxxxxxxxx> > --- > super-intel.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/super-intel.c b/super-intel.c > index 98fe835..68cc8d6 100644 > --- a/super-intel.c > +++ b/super-intel.c > @@ -10297,7 +10297,8 @@ int wait_for_reshape_imsm(struct mdinfo *sra, int ndata) > > do { > char action[20]; > - sysfs_wait(fd, NULL); > + int timeout = 3000; > + sysfs_wait(fd, &timeout); > if (sysfs_get_str(sra, NULL, "sync_action", > action, 20) > 0 && > strncmp(action, "reshape", 7) != 0) { > -- > 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
Attachment:
signature.asc
Description: PGP signature