]> git.ipfire.org Git - thirdparty/mdadm.git/blobdiff - Detail.c
Monitor: stop notifing about containers.
[thirdparty/mdadm.git] / Detail.c
index 24fa462e76c0124032e13a5709a7e41da9043227..b6587c8c8db356b04ea3613f2e02d902a64d2943 100644 (file)
--- a/Detail.c
+++ b/Detail.c
@@ -224,7 +224,10 @@ int Detail(char *dev, struct context *c)
        }
 
        /* Ok, we have some info to print... */
-       str = map_num(pers, array.level);
+       if (inactive)
+               str = map_num(pers, info->array.level);
+       else
+               str = map_num(pers, array.level);
 
        if (c->export) {
                if (array.raid_disks) {
@@ -468,7 +471,9 @@ int Detail(char *dev, struct context *c)
                if (ioctl(fd, GET_BITMAP_FILE, &bmf) == 0 && bmf.pathname[0]) {
                        printf("     Intent Bitmap : %s\n", bmf.pathname);
                        printf("\n");
-               } else if (array.state & (1<<MD_SB_BITMAP_PRESENT))
+               } else if (array.state & (1<<MD_SB_CLUSTERED))
+                       printf("     Intent Bitmap : Internal(Clustered)\n\n");
+               else if (array.state & (1<<MD_SB_BITMAP_PRESENT))
                        printf("     Intent Bitmap : Internal\n\n");
                atime = array.utime;
                if (atime)
@@ -496,17 +501,20 @@ int Detail(char *dev, struct context *c)
                        } else
                                arrayst = "active";
 
-                       printf("             State : %s%s%s%s%s%s \n",
+                       printf("             State : %s%s%s%s%s%s%s \n",
                               arrayst, st,
                               (!e || (e->percent < 0 &&
                                       e->percent != RESYNC_PENDING &&
-                                      e->percent != RESYNC_DELAYED)) ?
+                                      e->percent != RESYNC_DELAYED &&
+                                      e->percent != RESYNC_REMOTE)) ?
                               "" : sync_action[e->resync],
                               larray_size ? "": ", Not Started",
                               (e && e->percent == RESYNC_DELAYED) ?
                               " (DELAYED)": "",
                               (e && e->percent == RESYNC_PENDING) ?
-                              " (PENDING)": "");
+                              " (PENDING)": "",
+                              (e && e->percent == RESYNC_REMOTE) ?
+                              " (REMOTE)": "");
                } else if (inactive && !is_container) {
                        printf("             State : inactive\n");
                }
@@ -525,6 +533,11 @@ int Detail(char *dev, struct context *c)
                        printf("            Layout : %s\n",
                               str ? str : "-unknown-");
                }
+               if (array.level == 0 && array.layout) {
+                       str = map_num(r0layout, array.layout);
+                       printf("            Layout : %s\n",
+                              str ? str : "-unknown-");
+               }
                if (array.level == 6) {
                        str = map_num(r6layout, array.layout);
                        printf("            Layout : %s\n",