diff options
author | Neil Brown <neilb@suse.de> | 2005-09-12 07:12:07 +0000 |
---|---|---|
committer | Neil Brown <neilb@suse.de> | 2005-09-12 07:12:07 +0000 |
commit | e478dc86ede12e68eb5b2d926c9f6ff5b6aebc00 (patch) | |
tree | 5942c7deaff0571f414772af26be2ca3f14141f2 /super1.c | |
parent | c929c82e7faaefb71001e4e8bbb8b7b2c1657513 (diff) | |
download | mdadm-e478dc86ede12e68eb5b2d926c9f6ff5b6aebc00.tar.gz mdadm-e478dc86ede12e68eb5b2d926c9f6ff5b6aebc00.tar.xz mdadm-e478dc86ede12e68eb5b2d926c9f6ff5b6aebc00.zip |
Release 2-0
With little fix for -O2 compile
Signed-off-by: Neil Brown <neilb@suse.de>
Diffstat (limited to 'super1.c')
-rw-r--r-- | super1.c | 16 |
1 files changed, 9 insertions, 7 deletions
@@ -535,7 +535,7 @@ static int write_init_super1(struct supertype *st, void *sbv, mdu_disk_info_t *dinfo, char *devname) { struct mdp_superblock_1 *sb = sbv; - struct mdp_superblock_1 *refsb = NULL; + void *refsbv = NULL; int fd = open(devname, O_RDWR | O_EXCL); int rfd; int rv; @@ -564,7 +564,9 @@ static int write_init_super1(struct supertype *st, void *sbv, if (rfd >= 0) close(rfd); sb->events = 0; - if (load_super1(st, fd, (void**)&refsb, NULL)==0) { + if (load_super1(st, fd, &refsbv, NULL)==0) { + struct mdp_superblock_1 *refsb = refsbv; + memcpy(sb->device_uuid, refsb->device_uuid, 16); if (memcmp(sb->set_uuid, refsb->set_uuid, 16)==0) { /* same array, so preserve events and dev_number */ @@ -897,12 +899,12 @@ void locate_bitmap1(struct supertype *st, int fd, void *sbv) unsigned long long offset; struct mdp_superblock_1 *sb; - if (sbv) - sb = sbv; - else { - if (st->ss->load_super(st, fd, (void**)&sb, NULL)) + if (!sbv) + if (st->ss->load_super(st, fd, sbv, NULL)) return; /* no error I hope... */ - } + + sb = sbv; + offset = __le64_to_cpu(sb->super_offset); offset += (long) __le32_to_cpu(sb->bitmap_offset); if (!sbv) |