]> git.ipfire.org Git - thirdparty/mdadm.git/commitdiff
super0: Use random_uuid() in init_super0()
authorJes Sorensen <Jes.Sorensen@redhat.com>
Mon, 15 Aug 2016 19:48:56 +0000 (15:48 -0400)
committerJes Sorensen <Jes.Sorensen@redhat.com>
Mon, 15 Aug 2016 19:48:56 +0000 (15:48 -0400)
This shaves another 80 bytes off the mdadm binary.

Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
super0.c

index 467a37373d83dda63fd46297a9b7e066c3e26b94..333860c452964846cea6b7782a16eb39a05110d3 100644 (file)
--- a/super0.c
+++ b/super0.c
@@ -752,16 +752,12 @@ static int init_super0(struct supertype *st, mdu_array_info_t *info,
                sb->set_uuid2 = uuid[2];
                sb->set_uuid3 = uuid[3];
        } else {
-               int rfd = open("/dev/urandom", O_RDONLY);
-               if (rfd < 0 || read(rfd, &sb->set_uuid0, 4) != 4)
-                       sb->set_uuid0 = random();
-               if (rfd < 0 || read(rfd, &sb->set_uuid1, 12) != 12) {
-                       sb->set_uuid1 = random();
-                       sb->set_uuid2 = random();
-                       sb->set_uuid3 = random();
-               }
-               if (rfd >= 0)
-                       close(rfd);
+               __u32 r[4];
+               random_uuid((__u8 *)r);
+               sb->set_uuid0 = r[0];
+               sb->set_uuid1 = r[1];
+               sb->set_uuid2 = r[2];
+               sb->set_uuid3 = r[3];
        }
        if (homehost && !uuid) {
                char buf[20];