You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
76 lines
2.2 KiB
76 lines
2.2 KiB
3 months ago
|
From 60c19530dd7cc6b38a75695a0a3d004bbe60d430 Mon Sep 17 00:00:00 2001
|
||
|
From: Kinga Tanska <kinga.tanska@intel.com>
|
||
|
Date: Tue, 27 Feb 2024 03:36:14 +0100
|
||
|
Subject: [PATCH 20/41] Detail: remove duplicated code
|
||
|
|
||
|
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 | 33 +++++++++++++--------------------
|
||
|
1 file changed, 13 insertions(+), 20 deletions(-)
|
||
|
|
||
|
diff --git a/Detail.c b/Detail.c
|
||
|
index aaa3dd6e..f23ec16f 100644
|
||
|
--- 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;
|
||
|
--
|
||
|
2.40.1
|
||
|
|