Improve reporting of layout for raid10.
Showing e.g. near=1, far=2 for the 'far2' layout of raid10 is confusing even though there is a sense in which is it correct. Make it less confusing by only printing whichever number is not 1. If both are 1, make that clear too (i.e. no redundancy).
This commit is contained in:
parent
2a528478c7
commit
e4965ef846
6
Detail.c
6
Detail.c
|
@ -239,9 +239,9 @@ int Detail(char *dev, int brief, int export, int test, char *homehost)
|
|||
printf(" Layout : %s\n", c?c:"-unknown-");
|
||||
}
|
||||
if (array.level == 10) {
|
||||
printf(" Layout : near=%d, %s=%d\n",
|
||||
array.layout&255, (array.layout&0x10000)?"offset":"far",
|
||||
(array.layout>>8)&255);
|
||||
printf(" Layout :");
|
||||
print_r10_layout(array.layout);
|
||||
printf("\n");
|
||||
}
|
||||
switch (array.level) {
|
||||
case 0:
|
||||
|
|
3
mdadm.h
3
mdadm.h
|
@ -513,7 +513,8 @@ extern void remove_partitions(int fd);
|
|||
|
||||
|
||||
extern char *human_size(long long bytes);
|
||||
char *human_size_brief(long long bytes);
|
||||
extern char *human_size_brief(long long bytes);
|
||||
extern void print_r10_layout(int layout);
|
||||
|
||||
#define NoMdDev (1<<23)
|
||||
extern int find_free_devnum(int use_partitions);
|
||||
|
|
7
super0.c
7
super0.c
|
@ -188,10 +188,9 @@ static void examine_super0(struct supertype *st, char *homehost)
|
|||
printf(" Layout : %s\n", c?c:"-unknown-");
|
||||
}
|
||||
if (sb->level == 10) {
|
||||
printf(" Layout : near=%d, %s=%d\n",
|
||||
sb->layout&255,
|
||||
(sb->layout&0x10000)?"offset":"far",
|
||||
(sb->layout>>8)&255);
|
||||
printf(" Layout :");
|
||||
print_r10_layout(sb->layout);
|
||||
printf("\n");
|
||||
}
|
||||
switch(sb->level) {
|
||||
case 0:
|
||||
|
|
14
super1.c
14
super1.c
|
@ -248,10 +248,9 @@ static void examine_super1(struct supertype *st, char *homehost)
|
|||
printf(" New Layout : %s\n", c?c:"-unknown-");
|
||||
}
|
||||
if (__le32_to_cpu(sb->level) == 10) {
|
||||
printf(" New Layout : near=%d, %s=%d\n",
|
||||
__le32_to_cpu(sb->new_layout)&255,
|
||||
(__le32_to_cpu(sb->new_layout)&0x10000)?"offset":"far",
|
||||
(__le32_to_cpu(sb->new_layout)>>8)&255);
|
||||
printf(" New Layout :");
|
||||
print_r10_layout(__le32_to_cpu(sb->new_layout));
|
||||
printf("\n");
|
||||
}
|
||||
}
|
||||
if (__le32_to_cpu(sb->new_chunk) != __le32_to_cpu(sb->chunksize))
|
||||
|
@ -281,10 +280,9 @@ static void examine_super1(struct supertype *st, char *homehost)
|
|||
}
|
||||
if (__le32_to_cpu(sb->level) == 10) {
|
||||
int lo = __le32_to_cpu(sb->layout);
|
||||
printf(" Layout : near=%d, %s=%d\n",
|
||||
lo&255,
|
||||
(lo&0x10000)?"offset":"far",
|
||||
(lo>>8)&255);
|
||||
printf(" Layout :");
|
||||
print_r10_layout(lo);
|
||||
printf("\n");
|
||||
}
|
||||
switch(__le32_to_cpu(sb->level)) {
|
||||
case 0:
|
||||
|
|
17
util.c
17
util.c
|
@ -606,6 +606,23 @@ char *human_size_brief(long long bytes)
|
|||
);
|
||||
return buf;
|
||||
}
|
||||
|
||||
void print_r10_layout(int layout)
|
||||
{
|
||||
int near = layout & 255;
|
||||
int far = (layout >> 8) & 255;
|
||||
int offset = (layout&0x10000);
|
||||
char *sep = "";
|
||||
|
||||
if (near != 1) {
|
||||
printf("%s near=%d", sep, near);
|
||||
sep = ",";
|
||||
}
|
||||
if (far != 1)
|
||||
printf("%s %s=%d", sep, offset?"offset":"far", far);
|
||||
if (near*far == 1)
|
||||
printf("NO REDUNDANCY");
|
||||
}
|
||||
#endif
|
||||
|
||||
#if !defined(MDASSEMBLE) || defined(MDASSEMBLE) && defined(MDASSEMBLE_AUTO)
|
||||
|
|
Loading…
Reference in New Issue