Alexey Obitotskiy <aleksey.obitotskiy@xxxxxxxxx> writes: > The sync_completed can be set to such values: > - two numbers of processed sectors and total during synchronization, > separated with '/'; > - 'none' if synchronization process is stopped; > - 'delayed' if synchronization process is delayed. > Handle value of sync_completed not only as numbers but > also check for 'none' and 'delayed'. > > Signed-off-by: Alexey Obitotskiy <aleksey.obitotskiy@xxxxxxxxx> > Reviewed-by: Pawel Baldysiak <pawel.baldysiak@xxxxxxxxx> > --- > super-intel.c | 36 ++++++++++++++++++++++++++++++++++-- > 1 file changed, 34 insertions(+), 2 deletions(-) > > diff --git a/super-intel.c b/super-intel.c > index 7950bef..b401f3c 100644 > --- a/super-intel.c > +++ b/super-intel.c > @@ -10363,6 +10363,33 @@ exit_imsm_reshape_super: > return ret_val; > } > > +#define COMPLETED_OK 0 > +#define COMPLETED_NONE 1 > +#define COMPLETED_DELAYED 2 > + > +static int read_completed(int fd, unsigned long long *val) > +{ > + int ret; > + char buf[50]; > + > + ret = sysfs_fd_get_str(fd, buf, 50); > + if (ret < 0) > + return ret; > + > + ret = COMPLETED_OK; > + if (strncmp(buf, "none", 4) == 0) { > + ret = COMPLETED_NONE; > + } else if (strncmp(buf, "delayed", 7) == 0) { > + ret = COMPLETED_DELAYED; > + } else { > + char *ep; > + *val = strtoull(buf, &ep, 0); > + if (ep == buf || (*ep != 0 && *ep != '\n' && *ep != ' ')) > + ret = -1; > + } > + return ret; > +} > + > /******************************************************************************* > * Function: wait_for_reshape_imsm > * Description: Function writes new sync_max value and waits until > @@ -10417,7 +10444,9 @@ int wait_for_reshape_imsm(struct mdinfo *sra, int ndata) > } > > do { > + int rc; > char action[20]; > + > int timeout = 3000; > sysfs_wait(fd, &timeout); > if (sysfs_get_str(sra, NULL, "sync_action", Nit - you shouldn't have a blank line between variable declaration, but rather put it between the declarations and the code itself. I fixed it up for you. Applied! Cheers, Jes -- 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