Return 0 if:

1. "-u N" specified, no -f, and mdN found,
  2. no -u, "-f /pathname" specified, and mdN associated with /pathname found,
  3. "-u N" specified, "-f /pathname" specified, and both of them found,
  4. "-l" specified and no -f,
  5. "-l" specified, "-f /pathname" specified, and /pathname found.

otherwise return -1.

Spotted by:	Julian H. Stacey
This commit is contained in:
Hiroki Sato 2013-10-24 01:06:44 +00:00
parent 8a5e5a978d
commit 4103b0b025

View File

@ -481,12 +481,18 @@ md_list(const char *units, int opt, const char *fflag)
printf("\n");
/* XXX: Check if it's enough to clean everything. */
geom_stats_snapshot_free(sq);
if (((opt & OPT_UNIT) && (fflag == NULL) && ufound) ||
((opt & OPT_UNIT) == 0 && (fflag != NULL) && ffound) ||
((opt & OPT_UNIT) && (fflag != NULL) && ufound && ffound))
return (0);
else
return (-1);
if (opt & OPT_UNIT) {
if (((fflag == NULL) && ufound) ||
((fflag == NULL) && (units != NULL) && ufound) ||
((fflag != NULL) && ffound) ||
((fflag != NULL) && (units != NULL) && ufound && ffound))
return (0);
} else if (opt & OPT_LIST) {
if ((fflag == NULL) ||
((fflag != NULL) && ffound))
return (0);
}
return (-1);
}
/*