diff options
author | grog <grog@FreeBSD.org> | 1999-04-05 04:02:59 +0000 |
---|---|---|
committer | grog <grog@FreeBSD.org> | 1999-04-05 04:02:59 +0000 |
commit | a06e742697dbe241f9814b11bebe875ffba70f9b (patch) | |
tree | 974848611d84472b1e24f0d9e00dd28efa72013d /sys | |
parent | 549cf0169041b2234865474184b34f315ba432dd (diff) | |
download | FreeBSD-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.c | 8 |
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--; |