From: Jes Sorensen Date: Tue, 20 Mar 2012 21:00:07 +0000 (+1100) Subject: Define and use SUPER1_SIZE for allocations X-Git-Tag: mdadm-3.2.4~64 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=4122675629c683fc8e0e3ed400107b6e27f9eac7;p=thirdparty%2Fmdadm.git Define and use SUPER1_SIZE for allocations Use a #define rather than calculate the size of the superblock buffer on every allocation. Signed-off-by: Jes Sorensen Signed-off-by: NeilBrown --- diff --git a/super1.c b/super1.c index 5ed99456..f165f592 100644 --- a/super1.c +++ b/super1.c @@ -93,6 +93,8 @@ struct mdp_superblock_1 { /* bitmap super size is 256, but we round up to a sector for alignment */ #define BM_SUPER_SIZE 512 #define MAX_DEVS ((int)(MAX_SB_SIZE - sizeof(struct mdp_superblock_1)) / 2) +#define SUPER1_SIZE (MAX_SB_SIZE + BM_SUPER_SIZE \ + + sizeof(struct misc_dev_info)) struct misc_dev_info { __u64 device_size; @@ -841,8 +843,7 @@ static int init_super1(struct supertype *st, mdu_array_info_t *info, char defname[10]; int sbsize; - if (posix_memalign((void**)&sb, 512, (MAX_SB_SIZE + BM_SUPER_SIZE + - sizeof(struct misc_dev_info))) != 0) { + if (posix_memalign((void**)&sb, 512, SUPER1_SIZE) != 0) { fprintf(stderr, Name ": %s could not allocate superblock\n", __func__); return 0; @@ -1227,15 +1228,12 @@ static int compare_super1(struct supertype *st, struct supertype *tst) return 1; if (!first) { - if (posix_memalign((void**)&first, 512, - MAX_SB_SIZE + BM_SUPER_SIZE + - sizeof(struct misc_dev_info)) != 0) { + if (posix_memalign((void**)&first, 512, SUPER1_SIZE) != 0) { fprintf(stderr, Name ": %s could not allocate superblock\n", __func__); return 1; } - memcpy(first, second, MAX_SB_SIZE + BM_SUPER_SIZE + - sizeof(struct misc_dev_info)); + memcpy(first, second, SUPER1_SIZE); st->sb = first; return 0; } @@ -1342,9 +1340,7 @@ static int load_super1(struct supertype *st, int fd, char *devname) return 1; } - if (posix_memalign((void**)&super, 512, - MAX_SB_SIZE + BM_SUPER_SIZE + - sizeof(struct misc_dev_info)) != 0) { + if (posix_memalign((void**)&super, 512, SUPER1_SIZE) != 0) { fprintf(stderr, Name ": %s could not allocate superblock\n", __func__); return 1;