camcontrol was setup to use the old scheme of going through the xpt(4)
device, which never worked properly (and has been disabled for a while).
camcontrol now sends BDRs through the pass(4) device, and XPT_RESET_DEV
CCBs are put on the device queue in the transport layer, as they should be.
Submitted by: luoqi
Reviewed by: ken
1. Get rid of the evilly bogus strdup(fstab) and free if (fstab == "")
as in umount.
2. Don't use /etc/fstab info if the mount instance does not exactly match
the fstab entry.
3. Reversed the mountpoint checking order in getmntpt().
4. Clarify the "not mounted" error message in mount -u. The previous
"unknown special file or file system" wasn't quite right.
5. Get rid of a 1-byte memory leak; this was reported by jhb.
Submitted by: Martin Blapp <mb@imp.ch>
Delete references to cam(9) and xpt(9) which do not exist.
Delete statement in BUGS that cam(9) and xpt(9) will be added soon.
PR: 14567
Submitted by: Ronald F. Guilmette <rfg@monkeys.com>
Approved by: ken
- Completly changed the internals of umount(8). We do three
checks now to see if 'argv' is in the mounttable. It they
all fail, we return to main and print a warning.
- fixed the umount mount-order. The checks are rather complex
to do this. Cause umount(8) should also be able to unmount
several devices at once ('umount -a', 'umount -A',
'umount /mnt /mnt2'), the mount-order get's important.
I added checks to mark and unmark already unmounted devices.
- Various fixes with nfs-unmounts (no rpc-calls were done,
or they were done although there was an existing mount).
Since we allow overlay-mounts, we should also handle them
properly.
- Translate the deprecated nfs-syntax with '@' to ':' like
mount_nfs does. The ':' syntax has now precedence, but '@'
still works.
- 'umount -v' is now fixed for all cases and doesn't print
garbage like two times the mountpoint etc.
- removed non documented and useless umount '-F'.
- hanged nfsmounts can now unmounted 'without' any problems.
I've removed stat() and realpath() checks on the mountpoint.
Instead we just do a realpath() on the basedir of the
mountpath and add the dirname again.
Implemented this as an idea from phk. But there are still
vfs-restrictions if the nfs_mount is busy. If there are
unwritten metadata on a hanged nfs-mount, and we modify
nfs_vfsops.c to not return EBUSY, we get a deadlock :(
The problem has now moved from userland to kernel.
- removed the BUGS part from the umount(8) manpage.
- Converted it to ANSI C (more than 60% of the code have
changed).
Martin_Blapp
Fixed PR's
----------
o [1999/02/03] bin/9893 NFS umount of regular file impossible
s [1995/11/27] bin/841 stale nfs mounts cannot be umounted
o [1999/08/01] bin/12911 alfred NFS umounts are not properly done
if just the mountpoint gets umounted
Only partially solved:
----------------------
The problem is now in kernel:
o [1999/04/07] bin/11005 `umount -f' does not work if the
NFS-server is down.
PR: bin/9893 bin/841 bin/12911 bin/11005
Submitted by: Martin Blapp <mb@imp.ch>
interface limits it to this anyway.
Change the name of the v flag variable from 'verbose' to 'vflag',
indicating the multiple use (verbose or verify).
Add -S flag to specify the size of some operations.
indicating the multiple use (verbose or verify).
vinum_ldi:
Show active requests for the drive if -v is specified.
White space cleanup.
vinum_lsi:
Show the progress of an init command if -v is specified.
vinum_info:
Print the number of active requests.
Print out loginfo_sdio and loginfo_sdiodone log entries.
indicating the multiple use (verbose or verify).
initsd: rewrite:
Initialization is now done in the kernel.
Verify (again!) if -v is specified.
Allow specification of a blocksize, the length to be transferred in
one transfer.
vinum_revive:
Allow specification of a blocksize, the length to be transferred in
one transfer.
Made mount more userfriendly (bad slashes are now filtered out)
and we remove in mount_nfs trailing slashes if there are any.
Fixed mount_xxx binarys to resolve with realpath(3)
the mountpoint.
Translate the deprecated nfs-syntax with '@' to ':' .
The ':' syntax has now precedence, but '@' still works.
Notify the user that the '@' syntax should not be used.
PR: 7846
PR: 13692
Submitted by: Martin Blapp <mb@imp.ch>
Reviewed by: phk
Original patch from Adrian. Martin added a check for free().
- Included the filesystem type in output of mount
PR: bin/13143
Submitted-By: Martin Blapp <mblapp@kassiopeja.lan.attic.ch>
request.
Fix some uninitialized warnings and a style bug while we are here.
Problem still exists where a failed umount can be misreported as
success.
Submitted by: Martin Blapp <mb@imp.ch>
- Move intrhook stuff into kernel.h
- Remove all occurrences of #device <device.h>
- Add kernel.h were necessary (nowhere)
- delete device.h
This file contained the structures for cfdata (old style config) and is no
longer used. It was included by most drivers.
It confuses the remote debugger as the definition of 'struct device' in
device.h is found before the one in bus_private.h.
vinum_lpi: Add information about progress of rebuildparity and
checkparity commands.
listconfig: Print object counts in a different format, don't refer to
the internal number of slots allocated:
Caused-confusion-to: Norbert Meissner <norbert.meissner@daimlerchrysler.com>
vinum_info: Change format of device numbers so that they fit in the
column (ignore high-order minor number bits, which aren't really of
much interest).
vinum_start: bzero the statinfo.dinfo struct. The lack of this was
causing sporadic failures of the start command.
Add body of vinum_checkparity command.
CAM_PASS_ERR_RECOVER flag to be set unconditionally on READ DEFECTS
commands, and also caused the CAM_DIR_IN flag to not be set. This was
the cause of all of the "camcontrol defects doesn't work with my NCR
controller" bugs.
The second prevented camcontrol negotiate from negotiating any bus width
other than 8 bits.
Submitted by: groudier@club-internet.fr (Gerard Roudier)
we're about to operate on, try to load one. Don't complain if the
load fails, and always press on regardless (there may not be a module
suitable or required).
With the renaming of the PCI ethernet driver modules and the addition
of appropriate miibus dependancies on those modules that need it, it is
now no longer necessary to compile many ethernet drivers into the kernel;
they will be loaded on demand the first time they are ifconfig'ed.
Inspiration from: mount
Reviewed by: obrien
- Trailing spaces and empty lines are ignored.
- A `#' sign will mark the remaining of the line as a comment.
Reviewed by: Ari Suutari <ari@suutari.iki.fi>
init(8) cannot decrease securelevel. The manual page explains this
and single_user() doesn't try to downgrade kernel to insecure mode.
Reviewed by: bde (manual page)
vinum_init(): Change name of variable plexindex to objindex, which
better describes its purpose.
initsd(): Add a second parameter to determine whether it should wait
for completion or not. This allows it to DTRT when called
with the -w flag either directly or via initplex().
Add 'setstate' command (function vinum_setstate ()) to implement the
VINUM_SETSTATE_FORCE ioctl for diddling individual object states.
This is a repair tool which can also be used for panicing the system.
Use with utmost care if at all.
Add unimplemented commands 'checkparity' and 'rebuildparity'. Watch
this space.
This wipes the MBR and creates slice 1 as a FreeBSD slice covering the
disk starting from the second track to the cylinder aligned end of the disk.
This is the most compatibly layout we have as far as I know.
using syslog(3) (log(9)) for its various purposes! This long-awaited
change also includes such nice things as:
* macros expanding into _two_ comma-delimited arguments!
* snprintf!
* more snprintf!
* linting and criticism by more people than you can shake a stick at!
* a slightly more uniform message style than before!
and last but not least
* no less than 5 rewrites!
Reviewed by: committers
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.
Add Cybernet copyright.
OK'd-by: Chuck Jacobus <chuck@cybernet.com>
vinum_ldi:
Calculate the percentage used correctly.
vinum_lsi:
Flag detached subdisks.
vinum_info:
Request info: get the major and minor numbers and print them
correctly.
list_defective_objects:
New function, for listing objects which aren't up after vinum_start.
Requested-by: Steve Taylor <staylor@cybernet.com>
wait correctly for completion.
set object in initializing state before initializing.
Don't set the plex up, it should go up automatically.
vinum_start:
If any objects are not up on start, list them.
Requested-by: Steve Taylor <staylor@cybernet.com>
vinum_attach:
Make sure we always have the object information before examining it.
vinum_replace:
Start writing.
create_drive, vinum_concat, vinum_stripe, vinum_mirror:
Check the ioctl return values correctly
vinum_readpol:
Start writing.
_or_ you may specify "log logamount number" to set logging specifically
the rule.
In addition, "ipfw resetlog" has been added, which will reset the
logging counters on any/all rule(s). ipfw resetlog does not affect
the packet/byte counters (as ipfw reset does), and is the only "set"
command that can be run at securelevel >= 3.
This should address complaints about not being able to set logging
amounts, not being able to restart logging at a high securelevel,
and not being able to just reset logging without resetting all of the
counters in a rule.
Describe the command formats in English.
Add references to other programs (boot0cfg, fdisk).
Remove some old cruft, including FUD about single-level bootstraps.
Add example of output format.
Not-objected-to-by: msmith
rnordier
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>
Change definition of sflag
Reported-by: Johan Karlsson <k@numeri.campus.luth.se>
Doug <Doug@gorean.org>
green
World-broken-by: grog
Pointy-hat-passed-to: grog
to bypass the create command.
vinum_stop:
Allow -f option.
Add commands for simplified configuration:
concat - create a volume with one concatenated plex
stripe - create a volume with one striped plex
mirror - create a volume with two concatenated or striped plexes
Egged-on-by: jkh
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.
the boot code from /boot/mbr, or elsewhere as defined by the revised
"-b bootcode" option; use getopt(3); clarify usage(); partially
revise man page; etc.
Show the available sectors relative to the user-available part of
the drive (don't include the config space at the beginning). This
stops an empty drive reporting only 99% available.
Requested-by: staylor
printconfig:
Show sizes in sectors with the suffix 's' instead of the
now-deprecated 'b'.
when halting or rebooting the system. It benefits from
running /etc/rc.shutdown by init(8).
``-o'' flag is provided for backward compatibility.
PR: 5451
Discussed with: des
- Make the -k "don't actually halt" flag incompatible with
the halt/reboot options -h, -p, and -r.
- The -n "don't sync" option is ignored if -k is specified.
Issue a warning message.
- Compute the actual shutdown time written to /var/run/nologin
correctly in the case of "now" being specified.
This is inteded for to allow ifconfig to print various unstructured
information from an interface.
The data is returned from the kernel in ASCII form, see the comment in
if.h for some technicalities.
Canonical cut&paste example to be found in if_tun.c
Initial use:
Now tun* interfaces tell the PID of the process which opened them.
Future uses could be (volounteers welcome!):
Have ppp/slip interfaces tell which tty they use.
Make sync interfaces return their media state: red/yellow/blue
alarm, timeslot assignment and so on.
Make ethernets warn about missing heartbeats and/or cables
"nowin95" as arguments to the "-o" flag, as alternatives to "-G", "-s",
"-l", and "-9"; when running "mount_msdos" by hand, that doesn't let you
do anything you couldn't already do, but if you're letting "mount" run
it, it lets you specify those options, which is especially useful if,
for example, you have an entry in "/etc/fstab" for some file system,
with "noauto" set, so you can conveniently mount a DOS partition from a
removable drive and force it to treat the file system as VFAT rather
than boring old FAT.
Submitted by: Guy Harris <guy@netapp.com>
can't have a dash character (it is treated as a ``range'' operator).
One could now use such a name by escaping the ``-'' characters.
For example:
# ipfw add 1 count tcp from any to any "ms\-sql\-s"
# ipfw add 2 count tcp from any ftp\\-data-ftp to any
PR: 7101
This means that the driver will add/delete routes when it knows it is
up/down, rather than have the generic code belive it is up if configured.
This is probably most useful for serial lines, although many PHY chips
could probably tell us if we're connected to the cable/hub as well.
sizeof(ifr->ifr_addr) for the variable length field ifr->ifr_addr.sa_len.
Otherwise the increment will be wrong in certain cases.
Obtained from: Whistle source tree
For the record: Garrett Wollman <wollman@khavrinen.lcs.mit.edu> suggests
SIOCGIFCONF should be dropped in favor of a sysctl mechanism.
+ add a missing call to dn_rule_delete() when flushing firewall
rules, thus preventing possible panics due to dangling pointers
(this was already done for single rule deletes).
+ improve "usage" output in ipfw(8)
+ add a few checks to ipfw pipe parameters and make it a bit more
tolerant of common mistakes (such as specifying kbit instead of Kbit)
PR: kern/10889
Submitted by: Ruslan Ermilov
do things like:
camcontrol tur da5
or
camcontrol tur 1:2:0
or
camcontrol tur 1:2
These changes are fully backwards compatible with the original device
specification syntax (-n dev -u unit), so it is possible to use either
method to specify a device now.
The device specification changes do not affect the rescan, reset or debug
commands, since by design, those commands work on a bus or bus:target:lun
basis only.
Also, shorten the default usage statement so that it fits in a 24 column
terminal. The full usage statement is still available by using the "help"
"-h" or "-?" arguments to camcontrol.
Submitted by: Joerg Wunsch <joerg_wunsch@interface-business.de>
entries go into the config file.
Clarify what names can be used for Vinum drives, and what will happen
to you if you use other names.
Forcibly-demonstrated-by: Thomas Stromberg <tstromberg@rtci.com>
Peter K Campbell <PCampbel@vtrlmel1.telstra.com.au>
George Cox <george.cox@sophos.com>
many others, but those were the only three today.
options:
-o fstab brings in filesystem options specified in /etc/fstab
-o current incorporates the current set of options for the file
system
The rightmost option wins in the case of conflicting options being
specified.
E.g.:-
# mount -u -o current,nosuid /home
will preserve the current mount options while adding the 'nosuid' flag.
2. Rewording of manual page to be hopefully clearer; small -Wall
cleanups.
Thanks to David Malone for his patience and willingness to work
multiple patches on request.
PR: bin/6399
Submitted by: David Malone <dwmalone@maths.tcd.ie>
NOTE: These changes will require recompilation of any userland
applications, like cdrecord, xmcd, etc., that use the CAM passthrough
interface. A make world is recommended.
camcontrol.[c8]:
- We now support two new commands, "tags" and "negotiate".
- The tags commands allows users to view the number of tagged
openings for a device as well as a number of other related
parameters, and it allows users to set tagged openings for
a device.
- The negotiate command allows users to enable and disable
disconnection and tagged queueing, set sync rates, offsets
and bus width. Note that not all of those features are
available for all controllers. Only the adv, ahc, and ncr
drivers fully support all of the features at this point.
Some cards do not allow the setting of sync rates, offsets and
the like, and some of the drivers don't have any facilities to
do so. Some drivers, like the adw driver, only support enabling
or disabling sync negotiation, but do not support setting sync
rates.
- new description in the camcontrol man page of how to format a disk
- cleanup of the camcontrol inquiry command
- add support in the 'devlist' command for skipping unconfigured devices if
-v was not specified on the command line.
- make use of the new base_transfer_speed in the path inquiry CCB.
- fix CCB bzero cases
cam_xpt.c, cam_sim.[ch], cam_ccb.h:
- new flags on many CCB function codes to designate whether they're
non-immediate, use a user-supplied CCB, and can only be passed from
userland programs via the xpt device. Use these flags in the transport
layer and pass driver to categorize CCBs.
- new flag in the transport layer device matching code for device nodes
that indicates whether a device is unconfigured
- bump the CAM version from 0x10 to 0x11
- Change the CAM ioctls to use the version as their group code, so we can
force users to recompile code even when the CCB size doesn't change.
- add + fill in a new value in the path inquiry CCB, base_transfer_speed.
Remove a corresponding field from the cam_sim structure, and add code to
every SIM to set this field to the proper value.
- Fix the set transfer settings code in the transport layer.
scsi_cd.c:
- make some variables volatile instead of just casting them in various
places
- fix a race condition in the changer code
- attach unless we get a "logical unit not supported" error. This should
fix all of the cases where people have devices that return weird errors
when they don't have media in the drive.
scsi_da.c:
- attach unless we get a "logical unit not supported" error
scsi_pass.c:
- for immediate CCBs, just malloc a CCB to send the user request in. This
gets rid of the 'held' count problem in camcontrol tags.
scsi_pass.h:
- change the CAM ioctls to use the CAM version as their group code.
adv driver:
- Allow changing the sync rate and offset separately.
adw driver
- Allow changing the sync rate and offset separately.
aha driver:
- Don't return CAM_REQ_CMP for SET_TRAN_SETTINGS CCBs.
ahc driver:
- Allow setting offset and sync rate separately
bt driver:
- Don't return CAM_REQ_CMP for SET_TRAN_SETTINGS CCBs.
NCR driver:
- Fix the ultra/ultra 2 negotiation bug
- allow setting both the sync rate and offset separately
Other HBA drivers:
- Put code in to set the base_transfer_speed field for
XPT_GET_TRAN_SETTINGS CCBs.
Reviewed by: gibbs, mjacob (isp), imp (aha)
Describe new scale letter for sizes: 's' (sector) instead of 'b'
(block). Both mean 512 bytes, but 'b' is deprecated because it's
confusing.
Document log file and environment variables.
If no file name is specified, create one and edit it with the editor
specified in the EDITOR environment variable, by default vi.
vinum_help:
Update.
Fix typos in messages.
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.
* Don't buffer "Digesting..." output - flush it immediately.
* Increase the number of repetitions by a factor of 100, and the block size by
a factor of 10 so as to give meaningful results on modern machines (108
seconds on my P120, and ~26 seconds on a P-II 350).
PR: bin/10604
Submitted by: Stanislav Shalunov <shalunov@lynxhub.lz.att.com>
o main returns int not void
o use braces to avoid potentially ambiguous else
Note: The fix to natd is potentially functional in nature since I used
the indentation as the right thing rather than the struct semantics.
Someone more familiar with the code should double check me on this one.
Reviewed by: obrien and chuckr
cannot yet be closed, though.
I hope I got all credits right, and that the multiple submitted by lines
do not break anyone's scripts...
PR: kern/5038, kern/5567
Submitted by: Keith Jang <keith@email.gcn.net.tw>
Submitted by: Joachim Kuebart <joki@kuebart.stuttgart.netsurf.de>
Submitted by: Byung Yang <byung@wam.umd.edu>
Submitted by: Motomichi Matsuzaki <mzaki@e-mail.ne.jp>
list functions. Previously, it would produce a non-verbose listing of
the objects followed individually by a statistics listing. Now it
produces only a one-line-per-object statistics listing.
Remove comments about not being able to unload from the command line.
Add another example configuration output.
Clarify when to use 'vinum start' and when to use 'vinum read'.
subdisks in need of revival.
vinum_stop: sleep for a second before unloading. This solves a race
condition with a potential daemon when the stop command
is specified on the command line.
When creating a new drive, if the drive already has a vinum label,
and name doesn't match the specified drive, do it anyway if the
'force' flag is specified.
Continually-tripped-over-by: Karl Pielorz <kpielorz@tdx.co.uk>
Update information about partition type for Vinum drives. They
*should* be of type 'vinum', but currently we still accept (and
complain about) partitions of type 'unused'. At a later date, only
'vinum' will be accepted.
Threatened-since: over a year
Semantics:
When creating a new drive, if the drive already has a vinum label,
and name doesn't match the specified drive, do it anyway if the
'force' flag is specified.
Continually-tripped-over-by: Karl Pielorz <kpielorz@tdx.co.uk>
so that dumps are treated by dump -w as having been done on midnight
of the day they were actually run. This makes dump -w behave as
expected for regularly scheduled daily dumps - if they all run the
same day. It makes dump -w behave strangely if you dump late in the
day and check again after midnight, but that is the lesser of two
evils.
Submitted by: Mike Meyer <mwm@phone.net>
PR: 9429