]> git.ipfire.org Git - thirdparty/mdadm.git/commitdiff
Detail: remove duplicated code
authorKinga Tanska <kinga.tanska@intel.com>
Tue, 27 Feb 2024 02:36:14 +0000 (03:36 +0100)
committerMariusz Tkaczyk <mariusz.tkaczyk@linux.intel.com>
Wed, 6 Mar 2024 14:29:30 +0000 (15:29 +0100)
Remove duplicated code from Detail(), where MD_UUID and MD_DEVNAME
are being set. Superblock is no longer required to print system
properties. Now it tries to obtain map in two ways.

Signed-off-by: Kinga Tanska <kinga.tanska@intel.com>
Signed-off-by: Mariusz Tkaczyk <mariusz.tkaczyk@linux.intel.com>
Detail.c

index aaa3dd6e0ee7f1d7e3e78c086db6e0a0b3f31c9e..f23ec16f81bc630e4e004465a808ca2fb1bdeecb 100644 (file)
--- a/Detail.c
+++ b/Detail.c
@@ -226,6 +226,9 @@ int Detail(char *dev, struct context *c)
                str = map_num(pers, array.level);
 
        if (c->export) {
+               char nbuf[64];
+               struct map_ent *mp = NULL, *map = NULL;
+
                if (array.raid_disks) {
                        if (str)
                                printf("MD_LEVEL=%s\n", str);
@@ -247,32 +250,22 @@ int Detail(char *dev, struct context *c)
                                       array.minor_version);
                }
 
-               if (st && st->sb && info) {
-                       char nbuf[64];
-                       struct map_ent *mp, *map = NULL;
-
-                       fname_from_uuid(st, info, nbuf, ':');
-                       printf("MD_UUID=%s\n", nbuf + 5);
+               if (info)
                        mp = map_by_uuid(&map, info->uuid);
+               if (!mp)
+                       mp = map_by_devnm(&map, fd2devnm(fd));
 
-                       if (mp && mp->path && strncmp(mp->path, DEV_MD_DIR, DEV_MD_DIR_LEN) == 0)
+               if (mp) {
+                       __fname_from_uuid(mp->uuid, 0, nbuf, ':');
+                       printf("MD_UUID=%s\n", nbuf + 5);
+                       if (mp->path && strncmp(mp->path, DEV_MD_DIR, DEV_MD_DIR_LEN) == 0)
                                printf("MD_DEVNAME=%s\n", mp->path + DEV_MD_DIR_LEN);
+               }
 
+               map_free(map);
+               if (st && st->sb) {
                        if (st->ss->export_detail_super)
                                st->ss->export_detail_super(st);
-                       map_free(map);
-               } else {
-                       struct map_ent *mp, *map = NULL;
-                       char nbuf[64];
-                       mp = map_by_devnm(&map, fd2devnm(fd));
-                       if (mp) {
-                               __fname_from_uuid(mp->uuid, 0, nbuf, ':');
-                               printf("MD_UUID=%s\n", nbuf+5);
-                       }
-                       if (mp && mp->path && strncmp(mp->path, DEV_MD_DIR, DEV_MD_DIR_LEN) == 0)
-                               printf("MD_DEVNAME=%s\n", mp->path + DEV_MD_DIR_LEN);
-
-                       map_free(map);
                }
                if (!c->no_devices && sra) {
                        struct mdinfo *mdi;