From owner-svn-src-projects@FreeBSD.ORG Tue Jan 13 19:17:12 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id EBA7D1065939; Tue, 13 Jan 2009 19:17:11 +0000 (UTC) (envelope-from lulf@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id CAA0A8FC13; Tue, 13 Jan 2009 19:17:11 +0000 (UTC) (envelope-from lulf@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n0DJHBfv013367; Tue, 13 Jan 2009 19:17:11 GMT (envelope-from lulf@svn.freebsd.org) Received: (from lulf@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n0DJHBM6013365; Tue, 13 Jan 2009 19:17:11 GMT (envelope-from lulf@svn.freebsd.org) Message-Id: <200901131917.n0DJHBM6013365@svn.freebsd.org> From: Ulf Lilleengen Date: Tue, 13 Jan 2009 19:17:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r187187 - in projects/gvinum: sbin/gvinum sys/geom/vinum X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Jan 2009 19:17:14 -0000 Author: lulf Date: Tue Jan 13 19:17:11 2009 New Revision: 187187 URL: http://svn.freebsd.org/changeset/base/187187 Log: - Add the -f option to the rm command, which allows the removal to be forced. Submitted by: Rick C. Petty Modified: projects/gvinum/sbin/gvinum/gvinum.c projects/gvinum/sys/geom/vinum/geom_vinum_rm.c Modified: projects/gvinum/sbin/gvinum/gvinum.c ============================================================================== --- projects/gvinum/sbin/gvinum/gvinum.c Tue Jan 13 19:14:51 2009 (r187186) +++ projects/gvinum/sbin/gvinum/gvinum.c Tue Jan 13 19:17:11 2009 (r187187) @@ -709,7 +709,7 @@ gvinum_help(void) " Rebuild the parity blocks of a RAID-5 plex.\n" "resetconfig\n" " Reset the complete gvinum configuration\n" - "rm [-r] volume | plex | subdisk | drive\n" + "rm [-r] [-f] volume | plex | subdisk | drive\n" " Remove an object.\n" "saveconfig\n" " Save vinum configuration to disk after configuration" @@ -1052,8 +1052,11 @@ gvinum_rm(int argc, char **argv) flags = 0; optreset = 1; optind = 1; - while ((j = getopt(argc, argv, "r")) != -1) { + while ((j = getopt(argc, argv, "rf")) != -1) { switch (j) { + case 'f': + flags |= GV_FLAG_F; + break; case 'r': flags |= GV_FLAG_R; break; Modified: projects/gvinum/sys/geom/vinum/geom_vinum_rm.c ============================================================================== --- projects/gvinum/sys/geom/vinum/geom_vinum_rm.c Tue Jan 13 19:14:51 2009 (r187186) +++ projects/gvinum/sys/geom/vinum/geom_vinum_rm.c Tue Jan 13 19:17:11 2009 (r187187) @@ -130,7 +130,8 @@ gv_remove(struct g_geom *gp, struct gctl case GV_TYPE_DRIVE: d = gv_find_drive(sc, argv); /* We don't allow to remove open drives. */ - if (gv_consumer_is_open(d->consumer)) { + if (gv_consumer_is_open(d->consumer) && + !(*flags & GV_FLAG_F)) { gctl_error(req, "drive '%s' is open", d->name); return; }