History log of /freebsd-current/sbin/gvinum/gvinum.c
Revision Date Author Comments
# b3e76948 16-Aug-2023 Warner Losh <imp@FreeBSD.org>

Remove $FreeBSD$: two-line .h pattern

Remove /^\s*\*\n \*\s+\$FreeBSD\$$\n/


# 4d846d26 10-May-2023 Warner Losh <imp@FreeBSD.org>

spdx: The BSD-2-Clause-FreeBSD identifier is obsolete, drop -FreeBSD

The SPDX folks have obsoleted the BSD-2-Clause-FreeBSD identifier. Catch
up to that fact and revert to their recommended match of BSD-2-Clause.

Discussed with: pfg
MFC After: 3 days
Sponsored by: Netflix


# 2117cdd4 07-Mar-2022 Alexander Motin <mav@FreeBSD.org>

GEOM: Introduce gctl_add_param() API.

Make gctl_add_param() API public, allowing more precise control over
parameter flags. Previously it was impossible to properly declare
write-only ASCII parameters, used for result reporting, they were
declared as read-write binary instead, that was not nice.

MFC after: 1 month


# e567c750 16-Jun-2018 Eitan Adler <eadler@FreeBSD.org>

gvinum: build with WARNS=6

This also removes an unused and uninitialized variable.

Tested with amd64, arm64, i386, mips


# 1de7b4b8 27-Nov-2017 Pedro F. Giffuni <pfg@FreeBSD.org>

various: general adoption of SPDX licensing ID tags.

Mainly focus on files that use BSD 2-Clause license, however the tool I
was using misidentified many licenses so this was mostly a manual - error
prone - task.

The Software Package Data Exchange (SPDX) group provides a specification
to make it easier for automated tools to detect and summarize well known
opensource licenses. We are gradually adopting the specification, noting
that the tags are considered only advisory and do not, in any way,
superceed or replace the license texts.

No functional change intended.


# c6f0fab5 07-May-2014 Marius Strobl <marius@FreeBSD.org>

- Sprinkle const and static as appropriate.
- Fix whitespace bugs.
- Remove pointless returns in void functions.
- Nuke pointless switch cases mirroring the default.

MFC after: 3 days
Sponsored by: Bally Wulff Games & Entertainment GmbH


# 7beff089 06-May-2014 Marius Strobl <marius@FreeBSD.org>

- Allow foot shooting with the resetconfig command via the -f option.
- Fix typos preventing -f to actually work with the create command.
- Initialize flags to zero rather than using stack garbage when handling
the grow command.

MFC after: 3 days
Sponsored by: Bally Wulff Games & Entertainment GmbH


# 02e17f0b 02-May-2014 Marius Strobl <marius@FreeBSD.org>

Allow GEOM_VINUM to be statically compiled into the kernel.

Submitted by: gleb
MFC after: 3 days


# 202038ae 15-Oct-2013 Xin LI <delphij@FreeBSD.org>

Prevent an unlikely, but real double free issue in gvinum(8).

Coverity ID: 1018965


# 566c5672 09-Jan-2012 Eitan Adler <eadler@FreeBSD.org>

Fix warning when compiling with gcc46:
error: variable 'op' set but not used
error: variable 'cmd' set but not used

Approved by: dim
MFC after: 3 days


# 3b6dc18e 13-Nov-2011 Eitan Adler <eadler@FreeBSD.org>

- fix duplicate "a a" in some comments

Submitted by: eadler
Approved by: simon
MFC after: 3 days


# 1161d420 22-Nov-2010 Rebecca Cran <brucec@FreeBSD.org>

Fix some more warnings found by clang.


# a7d5f7eb 19-Oct-2010 Jamie Gritton <jamie@FreeBSD.org>

A new jail(8) with a configuration file, to replace the work currently done
by /etc/rc.d/jail.


# ee4912eb 11-Jun-2010 Ulrich Spörlein <uqs@FreeBSD.org>

Initialize variables before usage.

Found by: clang static analyzer
Found by: Coverity Prevent[tm] (CID 7736, 7760)


# fe0506d7 09-Mar-2010 Marcel Moolenaar <marcel@FreeBSD.org>

Create the altix project branch. The altix project will add support
for the SGI Altix 350 to FreeBSD/ia64. The hardware used for porting
is a two-module system, consisting of a base compute module and a
CPU expansion module. SGI's NUMAFlex architecture can be an excellent
platform to test CPU affinity and NUMA-aware features in FreeBSD.


# bdefa4b7 03-Mar-2010 Ulf Lilleengen <lulf@FreeBSD.org>

- Make function of finding an available drive name a macro.
- Move check of /dev/ prefix and copy into a function to save code duplication.
This also fixes a bug where the /dev/ prefix could not be used when creating
volumes on the command line.

Tested by: Niclas Zeising <niclas.zeising - at - gmail.com>


# caace688 10-Apr-2009 Ulf Lilleengen <lulf@FreeBSD.org>

- Better wording in comment.

Suggested by: Christoph Mallon <christoph.mallon - at - gmx.de>


# 8d4311ea 10-Apr-2009 Ulf Lilleengen <lulf@FreeBSD.org>

- Implement the grow command to make it easier for users to extend plexes
without having to understand all gvinum internals.
- Document the grow command in the manpage and update examples to use the
command where possible.


# deded9cc 10-Apr-2009 Ulf Lilleengen <lulf@FreeBSD.org>

- Move logic for finding a unique drive name into its own routine for future
code reuse.


# 1de45ea7 10-Apr-2009 Ulf Lilleengen <lulf@FreeBSD.org>

- Move out allocation part of different gvinum objects into its own routine and
make use of it in the gvinum userland code.


# c0b9797a 28-Mar-2009 Ulf Lilleengen <lulf@FreeBSD.org>

Import the gvinum work that have been done during and after Summer of Code 2007.
The work have been under testing and fixing since then, and it is mature enough
to be put into HEAD for further testing.

A lot have changed in this time, and here are the most important:
- Gvinum now uses one single workerthread instead of one thread for each
volume and each plex. The reason for this is that the previous scheme was
very complex, and was the cause of many of the bugs discovered in gvinum.
Instead, gvinum now uses one worker thread with an event queue, quite
similar to what used in gmirror.
- The rebuild/grow/initialize/parity check routines no longer runs in
separate threads, but are run as regular I/O requests with special flags.
This made it easier to support mounted growing and parity rebuild.
- Support for growing striped and raid5-plexes, meaning that one can extend the
volumes for these plex types in addition to the concat type. Also works while
the volume is mounted.
- Implementation of many of the missing commands from the old vinum:
attach/detach, start (was partially implemented), stop (was partially
implemented), concat, mirror, stripe, raid5 (shortcuts for creating volumes
with one plex of these organizations).
- The parity check and rebuild no longer goes between userland/kernel, meaning
that the gvinum command will not stay and wait forever for the rebuild to
finish. You can instead watch the status with the list command.
- Many problems with gvinum have been reported since 5.x, and some has been hard
to fix due to the complicated architecture. Hopefully, it should be more
stable and better handle edge cases that previously made gvinum crash.
- Failed drives no longer disappears entirely, but now leave behind a dummy
drive that makes sure the original state is not forgotten in case the system
is rebooted between drive failures/swaps.
- Update manpage to reflect new commands and extend it with some examples.

Sponsored by: Google Summer of Code 2007
Mentored by: le
Tested by: Rick C. Petty <rick-freebsd2008 -at- kiwi-computer.com>


# d7f03759 19-Oct-2008 Ulf Lilleengen <lulf@FreeBSD.org>

- Import the HEAD csup code which is the basis for the cvsmode work.


# 7b5264fa 23-Mar-2006 Lukas Ertl <le@FreeBSD.org>

Implement the 'resetconfig' command.

PR: kern/94835
Submitted by: Ulf Lilleengen <lulf@stud.ntnu.no>


# ff98e7ce 20-Nov-2005 Lukas Ertl <le@FreeBSD.org>

Fix whitespace issues.

Pointed out by: joel@


# 8160e983 19-Nov-2005 Lukas Ertl <le@FreeBSD.org>

Finally bring in what was produced during Google SoC 2005:

Add functions to rename objects and to move a subdisk from one drive
to another.

Add manual page (finally).

Bring up-to-date the online help.

Obtained from: Chris Jones <chris.jones@ualberta.ca>
Sponsored by: Google Summer of Code 2005
MFC in: 1 week


# a48c2af0 12-Sep-2005 Lukas Ertl <le@FreeBSD.org>

Clean up.

Remove unused functions.

Reduce indentation level by reverting the logic of the enclosing
conditional statement.


# 997337fd 25-Nov-2004 Lukas Ertl <le@FreeBSD.org>

Implement 'setstate' to allow setting the state of drives and subdisks
for debugging and emergency purposes.


# fb5885af 25-Nov-2004 Lukas Ertl <le@FreeBSD.org>

Implement checkparity/rebuildparity.


# 5c1accc9 03-Aug-2004 Lukas Ertl <le@FreeBSD.org>

Allow 'create <filename>'.


# 0b8962bc 12-Jun-2004 Lukas Ertl <le@FreeBSD.org>

Add gvinum, the geom_vinum userland tool.