Change name of history file to History to avoid name conflicts.
Rewrite minor number decoding. Now we have only three types of
object: subdisks, plexes and volumes. The encoding for plexes and
subdisks no longer reflects the object to which they belong. The
super devices are high-order volume numbers. This gives vastly more
potential volumes (4 million instead of 256).
Don't try to chown directories if they haven't been created.
the configuration of any other disk-like devices.
This is the non-DEVFS part which is normally not used in 5.x, but due
for MFC into 4.x.
PR: bin/28294, bin/32588
MFC after: 1 week
if the kernel module is built that way.
Remove the gross debug device/non-debug device hack used to recognize
whether the kernel module was in sync with the userland module.
Use userland expurgated versions of kernel structures, since that's
what the ioctls return now.
Remove vinum_perror.
main: Check kernel version with userland version in _vinum_conf. This
field is a constant which gets incremented every time the
kernel-userland interface changes. This enables vinum(8) to
check for the correct kernel version and to produce a useful
message if it doesn't match. For previous versions, which don't
have a version number, the length of the structure is different,
so we can recognize it via the EINVAL return from ioctl.
Supply count parameter to tokenize().
Change method of recognizing active devfs: replace devfs_is_active
with (complemented) no_devfs.
make_devices: remove references to devfs. If we're running devfs, we
don't need to call make_devices at all.
vinum_makedev (user command 'makedev'): Print a warning message if
devfs is running and don't do anything else.
userland tool:
Use the vfs.devfs.generation sysctl to test for devfs presense
(thanks phk!) when devfs is active it will not try to create the
device nodes in /dev and therefore will not complain about the
failure to do so.
Revert the change in the #define for VINUM_DIR in the kernel
header so that vinum can find its device nodes.
Replace perror() with vinum_perror() to print file/line when
DEVBUG is defined (not defined by default).
kernel:
Don't use the #define names for the "superdev" creation since
they will be prepended by "/dev/" (based on VINUM_DIR), instead
use string constants.
Create both debug and non-debug "superdev" nodes in the devfs.
Problem noticed and fix tested by: Martin Blapp <mblapp@fuchur.lan.attic.ch>
/var/log/vinum_history. Also check that any existing history file is
a regular file.
Admonished-by: imp
Allow stopping long-running commands with ^C (well, SIGINTR).
Previously this would stop the program.
replaces an older attempt to silence vinum(8) when started in
single-user mode.
Add entries for vinum_raid[45].
Replace the preprocessor variable name CDEV_MAJOR with
VINUM_CDEV_MAJOR.
continue_revive: Set the proc title to 'reviving <sdname>' so that it
can be recognized in a ps list.
Approved-by: jkh
Suggested-by: Bernd Walter (ticso@cicely.de)
Add key pairs for 'mv' and 'move' (a synonym for 'mv'). Required for
the move command code submitted by Marius Bendiksen
<marius@marius.scancall.no>
make_devices: Don't create symlinks for drives if they are only
referenced. Previously, spurious symlinks appeared in the current
directory.
Problem-reported-by: Bernd Walter (ticso@cicely.de)
No longer create character devices, now that there is no difference.
Make the devices as character devices, not block devices.
Add function definition for readpol command.
Rewrite make_devices with a view to incremental making. In the
process, effectively kill off plex-bound subdisk device numbers.
the device numbers are now minor number only, so that we can still
compare them after dev_t has turned into a blob.
Broken-by: dev_t changes
Reported-by: Vallo Kallaste <vallo@matti.ee>
"Niels Chr. Bank-Pedersen" <ncbp@bank-pedersen.dk>
one hat.
Add -n option for specifying names of volumes created with the
simplified commands.
Add function find_drive_by_devname to help the simplified
configuration commands.
has been done. This name can be overridden by the value of the
VINUM_HISTORY environment variable.
Print dates in log file according to the variable VINUM_DATEFORMAT, by
default %e %b %Y %H:%M:%S.
the debug superdevice when we're compiled without debug, or the normal
superdevice when we're compiled with debug. If this succeeds, print
an informative comment and exit.
make_devices: Create both debug and normal superdevices.
Wait4 zombies.
make_devices: Don't try if the /dev directory is mounted read-only.
Create daemon superdevice /dev/vinum/controld.
Format a couple of multiline comments conformant with style(9).
the wrong module can cause confusion, including loading both versions
(which conflict with each other) and incorrect ioctls, which cause
unintelligible error messages.
Extend 'start' command: if used without any parameters, vinum scans
all disks known to devstat for vinum drives and reads their
configuration.