Re: [PATCH 2/2] imsm: properly handle values of sync_completed

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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



[Index of Archives]     [Linux RAID Wiki]     [ATA RAID]     [Linux SCSI Target Infrastructure]     [Linux Block]     [Linux IDE]     [Linux SCSI]     [Linux Hams]     [Device Mapper]     [Device Mapper Cryptographics]     [Kernel]     [Linux Admin]     [Linux Net]     [GFS]     [RPM]     [git]     [Yosemite Forum]


  Powered by Linux