Fix some type-aliasing issues.
Warnings for these are reported with -Wstrict-aliasing=2, and avoiding the cast is certainly an improvement. Signed-off-by: NeilBrown <neilb@suse.de>
This commit is contained in:
parent
e4c72d1dc6
commit
3b7e9d0cbe
4
Grow.c
4
Grow.c
|
@ -3023,6 +3023,7 @@ int child_monitor(int afd, struct mdinfo *sra, struct reshape *reshape,
|
|||
int chunk = sra->array.chunk_size;
|
||||
struct mdinfo *sd;
|
||||
unsigned long stripes;
|
||||
int uuid[4];
|
||||
|
||||
/* set up the backup-super-block. This requires the
|
||||
* uuid from the array.
|
||||
|
@ -3050,7 +3051,8 @@ int child_monitor(int afd, struct mdinfo *sra, struct reshape *reshape,
|
|||
|
||||
memset(&bsb, 0, 512);
|
||||
memcpy(bsb.magic, "md_backup_data-1", 16);
|
||||
st->ss->uuid_from_super(st, (int*)&bsb.set_uuid);
|
||||
st->ss->uuid_from_super(st, uuid);
|
||||
memcpy(bsb.set_uuid, uuid, 16);
|
||||
bsb.mtime = __cpu_to_le64(time(0));
|
||||
bsb.devstart2 = blocks;
|
||||
|
||||
|
|
8
super0.c
8
super0.c
|
@ -424,6 +424,7 @@ static int update_super0(struct supertype *st, struct mdinfo *info,
|
|||
* ignored.
|
||||
*/
|
||||
int rv = 0;
|
||||
int uuid[4];
|
||||
mdp_super_t *sb = st->sb;
|
||||
if (strcmp(update, "sparc2.2")==0 ) {
|
||||
/* 2.2 sparc put the events in the wrong place
|
||||
|
@ -562,7 +563,8 @@ static int update_super0(struct supertype *st, struct mdinfo *info,
|
|||
if (sb->state & (1<<MD_SB_BITMAP_PRESENT)) {
|
||||
struct bitmap_super_s *bm;
|
||||
bm = (struct bitmap_super_s*)(sb+1);
|
||||
uuid_from_super0(st, (int*)bm->uuid);
|
||||
uuid_from_super0(st, uuid);
|
||||
memcpy(bm->uuid, uuid, 16);
|
||||
}
|
||||
} else if (strcmp(update, "no-bitmap") == 0) {
|
||||
sb->state &= ~(1<<MD_SB_BITMAP_PRESENT);
|
||||
|
@ -988,6 +990,7 @@ static int add_internal_bitmap0(struct supertype *st, int *chunkp,
|
|||
int chunk = *chunkp;
|
||||
mdp_super_t *sb = st->sb;
|
||||
bitmap_super_t *bms = (bitmap_super_t*)(((char*)sb) + MD_SB_BYTES);
|
||||
int uuid[4];
|
||||
|
||||
|
||||
min_chunk = 4096; /* sub-page chunks don't work yet.. */
|
||||
|
@ -1011,7 +1014,8 @@ static int add_internal_bitmap0(struct supertype *st, int *chunkp,
|
|||
memset(bms, 0, sizeof(*bms));
|
||||
bms->magic = __cpu_to_le32(BITMAP_MAGIC);
|
||||
bms->version = __cpu_to_le32(major);
|
||||
uuid_from_super0(st, (int*)bms->uuid);
|
||||
uuid_from_super0(st, uuid);
|
||||
memcpy(bms->uuid, uuid, 16);
|
||||
bms->chunksize = __cpu_to_le32(chunk);
|
||||
bms->daemon_sleep = __cpu_to_le32(delay);
|
||||
bms->sync_size = __cpu_to_le64(size);
|
||||
|
|
4
super1.c
4
super1.c
|
@ -1493,6 +1493,7 @@ add_internal_bitmap1(struct supertype *st,
|
|||
int room = 0;
|
||||
struct mdp_superblock_1 *sb = st->sb;
|
||||
bitmap_super_t *bms = (bitmap_super_t*)(((char*)sb) + 1024);
|
||||
int uuid[4];
|
||||
|
||||
switch(st->minor_version) {
|
||||
case 0:
|
||||
|
@ -1580,7 +1581,8 @@ add_internal_bitmap1(struct supertype *st,
|
|||
memset(bms, 0, sizeof(*bms));
|
||||
bms->magic = __cpu_to_le32(BITMAP_MAGIC);
|
||||
bms->version = __cpu_to_le32(major);
|
||||
uuid_from_super1(st, (int*)bms->uuid);
|
||||
uuid_from_super1(st, uuid);
|
||||
memcpy(bms->uuid, uuid, 16);
|
||||
bms->chunksize = __cpu_to_le32(chunk);
|
||||
bms->daemon_sleep = __cpu_to_le32(delay);
|
||||
bms->sync_size = __cpu_to_le64(size);
|
||||
|
|
Loading…
Reference in New Issue