Re: [PATCH] Make --update=homehost work again.

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

 



Dear Justin,


thank you for your patch.


Am Dienstag, den 29.01.2013, 18:26 -0800 schrieb Justin Maggard:
> Commit 1e2b276535cea41c348292a019bdda8a58cb1679

Please not only add the hash, but also the summary, so people not having
the Linus’ master checked out know what the original commit was about.
Also CC the original commit author so s/he can comment.

> broke homehost updating
> functionality because it depended on each string comparison being done
> even after we already found a match.  Fix this by using a goto instead.
> 
> ---
>  super0.c |    3 ++-
>  super1.c |    3 ++-
>  2 files changed, 4 insertions(+), 2 deletions(-)
> 
> diff --git a/super0.c b/super0.c
> index ecb6b38..f15f1e0 100644
> --- a/super0.c
> +++ b/super0.c
> @@ -554,10 +554,11 @@ static int update_super0(struct supertype *st, struct mdinfo *info,
>  	} else if (strcmp(update, "homehost") == 0 &&
>  		   homehost) {
>  		uuid_set = 0;
> -		update = "uuid";
>  		info->uuid[0] = sb->set_uuid0;
>  		info->uuid[1] = sb->set_uuid1;
> +		goto update_uuid;
>  	} else if (strcmp(update, "uuid") == 0) {

Would changing this from »else if …« to only »if« also solve this and
make it subjectively more clear?

> + update_uuid:
>  		if (!uuid_set && homehost) {
>  			char buf[20];
>  			char *hash = sha1_buffer(homehost,
> diff --git a/super1.c b/super1.c
> index 5bb1f01..fc31948 100644
> --- a/super1.c
> +++ b/super1.c
> @@ -987,14 +987,15 @@ static int update_super1(struct supertype *st, struct mdinfo *info,
>  	} else if (strcmp(update, "homehost") == 0 &&
>  		   homehost) {
>  		char *c;
> -		update = "name";
>  		c = strchr(sb->set_name, ':');
>  		if (c)
>  			strncpy(info->name, c+1, 31 - (c-sb->set_name));
>  		else
>  			strncpy(info->name, sb->set_name, 32);
>  		info->name[32] = 0;
> +		goto update_name;
>  	} else if (strcmp(update, "name") == 0) {
> + update_name:
>  		if (info->name[0] == 0)
>  			sprintf(info->name, "%d", info->array.md_minor);
>  		memset(sb->set_name, 0, sizeof(sb->set_name));


Thanks,

Paul

Attachment: signature.asc
Description: This is a digitally signed message part


[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