Module Name: src
Committed By: christos
Date: Wed Jan 6 17:41:36 UTC 2016
Modified Files:
src/sbin/raidctl: raidctl.8 raidctl.c
Log Message:
Access to the SET_LAST_UNIT ioctl.
To generate a diff of this commit:
cvs rdiff -u -r1.69 -r1.70 src/sbin/raidctl/raidctl.8
cvs rdiff -u -r1.63 -r1.64 src/sbin/raidctl/raidctl.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sbin/raidctl/raidctl.8
diff -u src/sbin/raidctl/raidctl.8:1.69 src/sbin/raidctl/raidctl.8:1.70
--- src/sbin/raidctl/raidctl.8:1.69 Tue Jun 30 18:16:12 2015
+++ src/sbin/raidctl/raidctl.8 Wed Jan 6 12:41:36 2016
@@ -1,4 +1,4 @@
-.\" $NetBSD: raidctl.8,v 1.69 2015/06/30 22:16:12 wiz Exp $
+.\" $NetBSD: raidctl.8,v 1.70 2016/01/06 17:41:36 christos Exp $
.\"
.\" Copyright (c) 1998, 2002 The NetBSD Foundation, Inc.
.\" All rights reserved.
@@ -53,7 +53,7 @@
.\" any improvements or extensions that they make and grant Carnegie the
.\" rights to redistribute these changes.
.\"
-.Dd June 30, 2015
+.Dd January 6, 2016
.Dt RAIDCTL 8
.Os
.Sh NAME
@@ -125,6 +125,9 @@
.Nm
.Op Fl v
.Fl u Ar dev
+.Nm
+.Op Fl v
+.Fl U Ar unit Ar dev
.Sh DESCRIPTION
.Nm
is the user-land control program for
@@ -318,6 +321,12 @@ achieved in each of these areas.
Unconfigure the RAIDframe device.
This does not remove any component labels or change any configuration
settings (e.g. auto-configuration settings) for the RAID set.
+.It Fl U Ar unit Ar dev
+Set the
+.Dv last_unit
+field in all the raid components, so that the next time the raid
+will be autoconfigured it uses that
+.Ar unit .
.It Fl v
Be more verbose.
For operations such as reconstructions, parity
Index: src/sbin/raidctl/raidctl.c
diff -u src/sbin/raidctl/raidctl.c:1.63 src/sbin/raidctl/raidctl.c:1.64
--- src/sbin/raidctl/raidctl.c:1.63 Tue Sep 8 04:59:09 2015
+++ src/sbin/raidctl/raidctl.c Wed Jan 6 12:41:36 2016
@@ -1,4 +1,4 @@
-/* $NetBSD: raidctl.c,v 1.63 2015/09/08 08:59:09 bad Exp $ */
+/* $NetBSD: raidctl.c,v 1.64 2016/01/06 17:41:36 christos Exp $ */
/*-
* Copyright (c) 1996, 1997, 1998 The NetBSD Foundation, Inc.
@@ -39,7 +39,7 @@
#include <sys/cdefs.h>
#ifndef lint
-__RCSID("$NetBSD: raidctl.c,v 1.63 2015/09/08 08:59:09 bad Exp $");
+__RCSID("$NetBSD: raidctl.c,v 1.64 2016/01/06 17:41:36 christos Exp $");
#endif
@@ -114,6 +114,7 @@ main(int argc,char *argv[])
int fd;
int force;
int openmode;
+ int last_unit;
num_options = 0;
action = 0;
@@ -122,9 +123,10 @@ main(int argc,char *argv[])
do_rewrite = 0;
serial_number = 0;
force = 0;
+ last_unit = 0;
openmode = O_RDWR; /* default to read/write */
- while ((ch = getopt(argc, argv, "a:A:Bc:C:f:F:g:GiI:l:mM:r:R:sSpPuv"))
+ while ((ch = getopt(argc, argv, "a:A:Bc:C:f:F:g:GiI:l:mM:r:R:sSpPuU:v"))
!= -1)
switch(ch) {
case 'a':
@@ -244,6 +246,13 @@ main(int argc,char *argv[])
action = RAIDFRAME_SHUTDOWN;
num_options++;
break;
+ case 'U':
+ action = RAIDFRAME_SET_LAST_UNIT;
+ num_options++;
+ last_unit = atoi(optarg);
+ if (last_unit < 0)
+ errx(1, "Bad last unit %s", optarg);
+ break;
case 'v':
verbose = 1;
/* Don't bump num_options, as '-v' is not
@@ -342,6 +351,10 @@ main(int argc,char *argv[])
case RAIDFRAME_SHUTDOWN:
do_ioctl(fd, RAIDFRAME_SHUTDOWN, NULL, "RAIDFRAME_SHUTDOWN");
break;
+ case RAIDFRAME_SET_LAST_UNIT:
+ do_ioctl(fd, RAIDFRAME_SET_LAST_UNIT, &last_unit,
+ "RAIDFRAME_SET_LAST_UNIT");
+ break;
default:
break;
}