summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authorgrog <grog@FreeBSD.org>1999-04-05 04:02:59 +0000
committergrog <grog@FreeBSD.org>1999-04-05 04:02:59 +0000
commita06e742697dbe241f9814b11bebe875ffba70f9b (patch)
tree974848611d84472b1e24f0d9e00dd28efa72013d /sys
parent549cf0169041b2234865474184b34f315ba432dd (diff)
downloadFreeBSD-src-a06e742697dbe241f9814b11bebe875ffba70f9b.zip
FreeBSD-src-a06e742697dbe241f9814b11bebe875ffba70f9b.tar.gz
remove_plex: If we don't find the plex in a volume to which it
claims to belong, remove it anyway.
Diffstat (limited to 'sys')
-rw-r--r--sys/dev/vinum/vinumconfig.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/sys/dev/vinum/vinumconfig.c b/sys/dev/vinum/vinumconfig.c
index 60044b3..7fc6520 100644
--- a/sys/dev/vinum/vinumconfig.c
+++ b/sys/dev/vinum/vinumconfig.c
@@ -1708,8 +1708,12 @@ remove_plex_entry(int plexno, int force, int recurse)
for (myplexno = 0; myplexno < vol->plexes; myplexno++)
if (vol->plex[myplexno] == plexno) /* found it */
break;
- if (myplexno == vol->plexes) /* didn't find it. Huh? */
- throw_rude_remark(ENOENT, "volume %s does not contain plex %s", vol->name, plex->name);
+ if (myplexno == vol->plexes) { /* didn't find it. Huh? */
+ if (force)
+ log(LOG_ERR, "volume %s does not contain plex %s", vol->name, plex->name);
+ else
+ throw_rude_remark(ENOENT, "volume %s does not contain plex %s", vol->name, plex->name);
+ }
if (myplexno < (vol->plexes - 1)) /* not the last plex in the list */
bcopy(&vol->plex[myplexno + 1], &vol->plex[myplexno], vol->plexes - 1 - myplexno);
vol->plexes--;
OpenPOWER on IntegriCloud