All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] Fix RAID metadata check
@ 2016-09-14 10:43 Mariusz Dabrowski
  2016-09-21  7:17 ` [PATCH][RESEND] " Mariusz Dabrowski
  0 siblings, 1 reply; 3+ messages in thread
From: Mariusz Dabrowski @ 2016-09-14 10:43 UTC (permalink / raw)
  To: linux-raid
  Cc: Jes.Sorensen, aleksey.obitotskiy, pawel.baldysiak,
	artur.paszkiewicz, maksymilian.kunt, tomasz.majchrzak,
	Mariusz Dabrowski

mdadm recognizes devices with partition table as part of an RAID array
and invalid warning message is displayed. After this fix proper warning
messages are being displayed for MBR/GPT disks and devices with RAID
metadata.

Signed-off-by: Mariusz Dabrowski <mariusz.dabrowski@intel.com>
---
 util.c | 28 +++++++++++++++++-----------
 1 file changed, 17 insertions(+), 11 deletions(-)

diff --git a/util.c b/util.c
index c38ede7..5c845a0 100644
--- a/util.c
+++ b/util.c
@@ -710,17 +710,23 @@ int check_raid(int fd, char *name)
 
 	if (!st)
 		return 0;
-	st->ss->load_super(st, fd, name);
-	/* Looks like a raid array .. */
-	pr_err("%s appears to be part of a raid array:\n",
-		name);
-	st->ss->getinfo_super(st, &info, NULL);
-	st->ss->free_super(st);
-	crtime = info.array.ctime;
-	level = map_num(pers, info.array.level);
-	if (!level) level = "-unknown-";
-	cont_err("level=%s devices=%d ctime=%s",
-		 level, info.array.raid_disks, ctime(&crtime));
+	if (st->ss->add_to_super != NULL) {
+		st->ss->load_super(st, fd, name);
+		/* Looks like a raid array .. */
+		pr_err("%s appears to be part of a raid array:\n",
+			name);
+		st->ss->getinfo_super(st, &info, NULL);
+		st->ss->free_super(st);
+		crtime = info.array.ctime;
+		level = map_num(pers, info.array.level);
+		if (!level) level = "-unknown-";
+		cont_err("level=%s devices=%d ctime=%s",
+		level, info.array.raid_disks, ctime(&crtime));
+	}
+	else {
+		/* Looks like GPT or MBR */
+		pr_err("partition table exists on %s\n", name);
+	}
 	return 1;
 }
 
-- 
1.8.3.1


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [PATCH][RESEND] Fix RAID metadata check
  2016-09-14 10:43 [PATCH] Fix RAID metadata check Mariusz Dabrowski
@ 2016-09-21  7:17 ` Mariusz Dabrowski
  2016-09-21 14:42   ` Jes Sorensen
  0 siblings, 1 reply; 3+ messages in thread
From: Mariusz Dabrowski @ 2016-09-21  7:17 UTC (permalink / raw)
  To: linux-raid
  Cc: Jes.Sorensen, tomasz.majchrzak, aleksey.obitotskiy,
	pawel.baldysiak, artur.paszkiewicz, maksymilian.kunt,
	Mariusz Dabrowski

mdadm recognizes devices with partition table as part of an RAID array
and invalid warning message is displayed. After this fix proper warning
messages are being displayed for MBR/GPT disks and devices with RAID
metadata.

Signed-off-by: Mariusz Dabrowski <mariusz.dabrowski@intel.com>
---
 util.c | 28 +++++++++++++++++-----------
 1 file changed, 17 insertions(+), 11 deletions(-)

diff --git a/util.c b/util.c
index c38ede7..5c845a0 100644
--- a/util.c
+++ b/util.c
@@ -710,17 +710,23 @@ int check_raid(int fd, char *name)
 
 	if (!st)
 		return 0;
-	st->ss->load_super(st, fd, name);
-	/* Looks like a raid array .. */
-	pr_err("%s appears to be part of a raid array:\n",
-		name);
-	st->ss->getinfo_super(st, &info, NULL);
-	st->ss->free_super(st);
-	crtime = info.array.ctime;
-	level = map_num(pers, info.array.level);
-	if (!level) level = "-unknown-";
-	cont_err("level=%s devices=%d ctime=%s",
-		 level, info.array.raid_disks, ctime(&crtime));
+	if (st->ss->add_to_super != NULL) {
+		st->ss->load_super(st, fd, name);
+		/* Looks like a raid array .. */
+		pr_err("%s appears to be part of a raid array:\n",
+			name);
+		st->ss->getinfo_super(st, &info, NULL);
+		st->ss->free_super(st);
+		crtime = info.array.ctime;
+		level = map_num(pers, info.array.level);
+		if (!level) level = "-unknown-";
+		cont_err("level=%s devices=%d ctime=%s",
+		level, info.array.raid_disks, ctime(&crtime));
+	}
+	else {
+		/* Looks like GPT or MBR */
+		pr_err("partition table exists on %s\n", name);
+	}
 	return 1;
 }
 
-- 
1.8.3.1


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH][RESEND] Fix RAID metadata check
  2016-09-21  7:17 ` [PATCH][RESEND] " Mariusz Dabrowski
@ 2016-09-21 14:42   ` Jes Sorensen
  0 siblings, 0 replies; 3+ messages in thread
From: Jes Sorensen @ 2016-09-21 14:42 UTC (permalink / raw)
  To: Mariusz Dabrowski
  Cc: linux-raid, tomasz.majchrzak, aleksey.obitotskiy,
	pawel.baldysiak, artur.paszkiewicz, maksymilian.kunt

Mariusz Dabrowski <mariusz.dabrowski@intel.com> writes:
> mdadm recognizes devices with partition table as part of an RAID array
> and invalid warning message is displayed. After this fix proper warning
> messages are being displayed for MBR/GPT disks and devices with RAID
> metadata.

A couple of issues here - in general please respect proper coding
style. This patch is a mess :(

> Signed-off-by: Mariusz Dabrowski <mariusz.dabrowski@intel.com>
> ---
>  util.c | 28 +++++++++++++++++-----------
>  1 file changed, 17 insertions(+), 11 deletions(-)
>
> diff --git a/util.c b/util.c
> index c38ede7..5c845a0 100644
> --- a/util.c
> +++ b/util.c
> @@ -710,17 +710,23 @@ int check_raid(int fd, char *name)
>  
>  	if (!st)
>  		return 0;
> -	st->ss->load_super(st, fd, name);
> -	/* Looks like a raid array .. */
> -	pr_err("%s appears to be part of a raid array:\n",
> -		name);
> -	st->ss->getinfo_super(st, &info, NULL);
> -	st->ss->free_super(st);
> -	crtime = info.array.ctime;
> -	level = map_num(pers, info.array.level);
> -	if (!level) level = "-unknown-";
> -	cont_err("level=%s devices=%d ctime=%s",
> -		 level, info.array.raid_disks, ctime(&crtime));
> +	if (st->ss->add_to_super != NULL) {
> +		st->ss->load_super(st, fd, name);
> +		/* Looks like a raid array .. */
> +		pr_err("%s appears to be part of a raid array:\n",
> +			name);

Code lines are 80 characters - again when moving code around like this,
please do it properly.

> +		st->ss->getinfo_super(st, &info, NULL);
> +		st->ss->free_super(st);
> +		crtime = info.array.ctime;
> +		level = map_num(pers, info.array.level);
> +		if (!level) level = "-unknown-";

if () and action should never be on the same line. Yes I know it was in
the old code, but then please fix it up when you move it around.

> +		cont_err("level=%s devices=%d ctime=%s",
> +		level, info.array.raid_disks, ctime(&crtime));

The indentation here is not acceptable, please do it properly like you
would in the kernel too.

> +	}
> +	else {

Ehm?

> +		/* Looks like GPT or MBR */
> +		pr_err("partition table exists on %s\n", name);
> +	}
>  	return 1;
>  }

Cheers,
Jes

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2016-09-21 14:42 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-09-14 10:43 [PATCH] Fix RAID metadata check Mariusz Dabrowski
2016-09-21  7:17 ` [PATCH][RESEND] " Mariusz Dabrowski
2016-09-21 14:42   ` Jes Sorensen

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.