X-Git-Url: http://git.ipfire.org/?p=thirdparty%2Fmdadm.git;a=blobdiff_plain;f=bitmap.c;h=86176696f957edef9d88955e869612ba6c47de85;hp=db2342bd636f904c500a8722f5c11406814601dd;hb=f35f25259279573c6274e2783536c0b0a399bdd4;hpb=aba69144fd44fc261c943b0cec540751cfcd29bd diff --git a/bitmap.c b/bitmap.c index db2342bd..86176696 100644 --- a/bitmap.c +++ b/bitmap.c @@ -122,11 +122,10 @@ bitmap_info_t *bitmap_fd_read(int fd, int brief) */ unsigned long long total_bits = 0, read_bits = 0, dirty_bits = 0; bitmap_info_t *info; - char *buf, *unaligned; + void *buf; int n, skip; - unaligned = malloc(8192*2); - buf = (char*) ((unsigned long)unaligned | 8191)+1; + posix_memalign(&buf, 512, 8192); n = read(fd, buf, 8192); info = malloc(sizeof(*info)); @@ -145,7 +144,6 @@ bitmap_info_t *bitmap_fd_read(int fd, int brief) fprintf(stderr, Name ": failed to read superblock of bitmap " "file: %s\n", strerror(errno)); free(info); - free(unaligned); return NULL; } memcpy(&info->sb, buf, sizeof(info->sb)); @@ -220,7 +218,7 @@ bitmap_info_t *bitmap_file_read(char *filename, int brief, struct supertype **st /* just look at device... */ lseek(fd, 0, 0); } else { - st->ss->locate_bitmap(st, fd, NULL); + st->ss->locate_bitmap(st, fd); } ioctl(fd, BLKFLSBUF, 0); /* make sure we read current data */ *stp = st;