uhm.. assort fixes, particularly for recovery offset...
Signed-off-by: Neil Brown <neilb@suse.de>
This commit is contained in:
parent
ce4fafd637
commit
d2cd3ffc02
4
Create.c
4
Create.c
|
@ -222,6 +222,10 @@ int Create(struct supertype *st, char *mddev, int mdfd,
|
||||||
}
|
}
|
||||||
|
|
||||||
freesize /= 2; /* convert to K */
|
freesize /= 2; /* convert to K */
|
||||||
|
if (chunk) {
|
||||||
|
/* round to chunk size */
|
||||||
|
freesize = freesize & ~(chunk-1);
|
||||||
|
}
|
||||||
|
|
||||||
if (size && freesize < size) {
|
if (size && freesize < size) {
|
||||||
fprintf(stderr, Name ": %s is smaller that given size."
|
fprintf(stderr, Name ": %s is smaller that given size."
|
||||||
|
|
14
super1.c
14
super1.c
|
@ -89,6 +89,14 @@ struct mdp_superblock_1 {
|
||||||
__u16 dev_roles[0]; /* role in array, or 0xffff for a spare, or 0xfffe for faulty */
|
__u16 dev_roles[0]; /* role in array, or 0xffff for a spare, or 0xfffe for faulty */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/* feature_map bits */
|
||||||
|
#define MD_FEATURE_BITMAP_OFFSET 1
|
||||||
|
#define MD_FEATURE_RECOVERY_OFFSET 2 /* recovery_offset is present and
|
||||||
|
* must be honoured
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define MD_FEATURE_ALL (1|2)
|
||||||
|
|
||||||
#ifndef offsetof
|
#ifndef offsetof
|
||||||
#define offsetof(t,f) ((int)&(((t*)0)->f))
|
#define offsetof(t,f) ((int)&(((t*)0)->f))
|
||||||
#endif
|
#endif
|
||||||
|
@ -148,10 +156,14 @@ static void examine_super1(void *sbv)
|
||||||
printf(" Raid Devices : %d\n", __le32_to_cpu(sb->raid_disks));
|
printf(" Raid Devices : %d\n", __le32_to_cpu(sb->raid_disks));
|
||||||
printf("\n");
|
printf("\n");
|
||||||
printf(" Device Size : %llu%s\n", (unsigned long long)sb->data_size, human_size(sb->data_size<<9));
|
printf(" Device Size : %llu%s\n", (unsigned long long)sb->data_size, human_size(sb->data_size<<9));
|
||||||
|
if (sb->size != sb->data_size)
|
||||||
|
printf(" Used Size : %llu%s\n", (unsigned long long)sb->size, human_size(sb->size<<9));
|
||||||
if (sb->data_offset)
|
if (sb->data_offset)
|
||||||
printf(" Data Offset : %llu sectors\n", (unsigned long long)__le64_to_cpu(sb->data_offset));
|
printf(" Data Offset : %llu sectors\n", (unsigned long long)__le64_to_cpu(sb->data_offset));
|
||||||
if (sb->super_offset)
|
if (sb->super_offset)
|
||||||
printf(" Super Offset : %llu sectors\n", (unsigned long long)__le64_to_cpu(sb->super_offset));
|
printf(" Super Offset : %llu sectors\n", (unsigned long long)__le64_to_cpu(sb->super_offset));
|
||||||
|
if (__le32_to_cpu(sb->feature_map) & MD_FEATURE_RECOVERY_OFFSET)
|
||||||
|
printf("Recovery Offset : %llu sectors\n", (unsigned long long)__le64_to_cpu(sb->recovery_offset));
|
||||||
printf(" State : %s\n", (__le64_to_cpu(sb->resync_offset)+1)? "active":"clean");
|
printf(" State : %s\n", (__le64_to_cpu(sb->resync_offset)+1)? "active":"clean");
|
||||||
printf(" Device UUID : ");
|
printf(" Device UUID : ");
|
||||||
for (i=0; i<16; i++) {
|
for (i=0; i<16; i++) {
|
||||||
|
@ -189,6 +201,8 @@ static void examine_super1(void *sbv)
|
||||||
case 0:
|
case 0:
|
||||||
case 4:
|
case 4:
|
||||||
case 5:
|
case 5:
|
||||||
|
case 6:
|
||||||
|
case 10:
|
||||||
printf(" Chunk Size : %dK\n", __le32_to_cpu(sb->chunksize/2));
|
printf(" Chunk Size : %dK\n", __le32_to_cpu(sb->chunksize/2));
|
||||||
break;
|
break;
|
||||||
case -1:
|
case -1:
|
||||||
|
|
Loading…
Reference in New Issue