- if (st && !st->ss->validate_geometry
- (st, level, layout, raiddisks,
- chunk, size*2, dname, &freesize,
- verbose > 0))
+ switch (st->ss->validate_geometry(
+ st, level, layout, raiddisks,
+ &chunk, size*2, dname, &freesize,
+ verbose > 0)) {
+ case -1: /* Not valid, message printed, and not
+ * worth checking any further */
+ exit(2);
+ break;
+ case 0: /* Geometry not valid */
+ free(st);