]> git.ipfire.org Git - thirdparty/mdadm.git/blobdiff - super-intel.c
mdmon: fix wrong array state when disk fails during mdmon startup
[thirdparty/mdadm.git] / super-intel.c
index 5a7c9f8062e020e84ef10e6eab3ff660912a284d..4fd5e84d0bc785e8cca476be2b8083000e0b0367 100644 (file)
@@ -7455,9 +7455,8 @@ static int validate_geometry_imsm(struct supertype *st, int level, int layout,
                                                        verbose);
        }
 
-       if (size && ((size < 1024) || (*chunk != UnSet &&
-           size < (unsigned long long) *chunk))) {
-               pr_err("Given size must be greater than 1M and chunk size.\n");
+       if (size && (size < 1024)) {
+               pr_err("Given size must be greater than 1M.\n");
                /* Depends on algorithm in Create.c :
                 * if container was given (dev == NULL) return -1,
                 * if block device was given ( dev != NULL) return 0.
@@ -8561,7 +8560,7 @@ static void imsm_set_disk(struct active_array *a, int n, int state)
        disk = get_imsm_disk(super, ord_to_idx(ord));
 
        /* check for new failures */
-       if (state & DS_FAULTY) {
+       if (disk && (state & DS_FAULTY)) {
                if (mark_failure(super, dev, disk, ord_to_idx(ord)))
                        super->updates_pending++;
        }