Age | Commit message (Collapse) | Author |
|
|
|
required this.
requested by deraadt@
|
|
do for XS_RESET. adapters return SELTIMEOUT when the device is gone.
|
|
response struct (one of the reserved fields is actually the response).
OK dlg@
|
|
|
|
attaching since theyre useless without mpath.
the path drivers ask mpath if its ok to use the device before doing their
own matches (this is so mpath can prevent paths attaching to itself), so
im just adding this check there.
this uses code from miod to walk cfdata for the mpath entry and then checks
its state. this is ok because mpath is only attached in one place, so there
arent multiple cfdata entries for it.
ok krw@ deraadt@ miod@ matthew@
|
|
print the "sdN:" at the start of the now empty line. Noted by
miod@.
|
|
ok matthew@ tedu@, also eyeballed by at least krw@ oga@ kettenis@ jsg@
|
|
Prodded repeatedly by deraadt@
|
|
it up by using the usb devices iSerial thing.
ok deraadt@
|
|
enabled so people can get used to it.
ok deraadt@
|
|
found by marco@
ok and tweaks deraadt@ krw@
|
|
the big change is how paths between mpath capable devices and the
kernel are managed.
originally the midlayer would steal the links to the devices and
hide them behind mpath. all the changes an adapter made to a link
(eg activate or detach), the midlayer had to test if it was an mpath
link and then call special mpath code to handle it.
the original code also assumed that all paths behaved the same, but
the reality is that different devices have different command sets
and behaviours. figuring out which behaviour to pick and prioritising
them is basically the same job autoconf does with match and attach.
rather than special casing mpath in the midlayer and reimplimenting
autoconf, this turns paths into actual device drivers with match
and attach routines. after they figure out if the path is active,
they then give it to mpath(4) to use as a backend.
i have written drivers for symmetric access devices (sym(4)) where
all paths to the same logical unit are as good as each other,
lsi/engenio arrays (rdac(4), and emc arrays (emc(4)).
the rdac and emc drivers only detect active paths at attach time,
the do not cope if the controller changes state unless you unplug
the path and plug it in again to retest the active state. they also
do not have support for directing array failover.
operating and hoplugging has been tested with mpii(4), fc and sas
mpi(4), and iscsi via vscsi (claudio did this too).
ok krw@ deraadt@
|
|
ok krw@
|
|
Some stylistic tweaks after discussions with krw@ and deraadt@.
ok krw@; "Lovely" deraadt@
|
|
in a kernel panic.
ok krw@
|
|
to be in the right address space.
help from matthew and krw
|
|
Prompted by dlg@'s tape library trying to report a failure to thread
a media (0x53, 0x04).
|
|
delay and retry the original command rather than immediately erroring
out.
Fixes USB drives that spin themselves down due to inactivity, as
confirmed by pirofti@ and jsg@.
ok miod@, rough agreement pending more general solution dlg@.
|
|
way st(4) does. Have both decline to open read-only devices for
anything but read-only access.
Suggestion to fail opens rather than individual i/o's from deraadt@.
Problem USB device found and donated by chefren, who also tested
diffs. Thanks!
ok dlg@ marco@
|
|
cd(4) did not believe any T_FIXED device was its responsibility.
Thus when a USB CD forgot to mention that it is T_REMOV, it appeared
as uk(4).
Make cd(4) accept even T_FIXED devices that claim to be T_CDROM or
T_WORM.
Noticed and fix tested by Rene Maroufi. Closes PR #6513.
|
|
Noticed by Damien McGuckin. Thanks!
|
|
than 1 i/o active at once. This reduces the chances that concurrent
i/o's for such devices will confuse the device or the adapter code.
It also eliminates a reason for adapter code to maintain its own
queues.
Tweak all drivers that fake INQUIRY results to set the SID_CmdQue
flag, thus continuing to claim to be able to do tagged i/o.
Positive feedback from matthew@ and marco@ for an earlier version.
ok dlg@
|
|
|
|
geometry. it doesnt matter waht the value there is cos rigid will be NULL,
but this is clearer.
|
|
automatic reading of disklabel on attach.
ok deraadt@ miod@ krw@
|
|
|
|
no point in keeping it around.
"i like this" thib@ (a while back); ok krw@ and oga@; reminder to
update the man page and tweaks jmc@
|
|
about the device rather than the contents of whichever disklabel
was read. Tweak whitespace in sd.c to make the code appearance
consistant.
|
|
ok deraadt@ krw@ matthew@
|
|
to deactivate transactions we are currently doing.
ok dlg
|
|
src/sys/dev/ata/atascsi.c r1.92 solves the problem that my scsi_link
change tickled.
tested by josh elsasser who reported the problem in pr6470
deraadt@ is letting it in again so it can get widespread testing
|
|
disks in atascsi.
as reported in pr6470
|
|
pointed out by matthew@
|
|
same change as sd.c r1.212. matthew@ pointed out that cd(4) and
st(4) would need the same change.
|
|
and more plausibly correct.
Tested by jsing@ and myself.
|
|
scsi device can have in flight. instead of counting users of openings on
the bus by taking away from the openings value, count the number of
pending commands on the bus in a new pending variable.
this lets us know how many outstanding commands there are. we can then use
that to make sure that all commands a device has generated get completed
before detaching the device. this helps avoid resource leaks and use after
frees.
tested by me on pci ehci/umass, fc mpi, and sas mpi.
tested by jakemsr on cardbus ohci umass.
it found issues in sas mpi which were fixed as a result of this diff.
ok krw@
|
|
embarrsssment.
discovered by okan@
|
|
need to calculate and save. Not used anywhere in tree.
|
|
rather than 'sc_params'. No change to .o file.
|
|
512 == DEV_BSIZE units and variable-sized physical device 'sectors'.
I hope this reduces confusion a bit more. No change to .o files.
ok for intent miod@, with tweak.
|
|
a device thats now gone, or from being on the list of pending io when
the device is actually detached.
found and fix tested by jakemsr@
"go for it" jakemsr@
|
|
verifying that the resulting device is present on the disklist. This
avoids a race whereby the disk driver can be accessed as soon as the
softc has been allocated, but before the disk has completed
initialisation and has called disk_attach() (up until this point
dk_label is still a null pointer).
Cut cd(4), sd(4) and wd(4) across to disk_lookup(). All callers of
disk_attach() need to be tested and cut over in due course.
ok deraadt@ krw@
|
|
disk_attach() is called by the device driver. We will be building on
this shortly.
ok deraadt@ krw@
|
|
just a target/lun.
|
|
all from deraadt@
tested by me with hotplugged disks on mpi(4)
|
|
traversal code to suspend/resume
ok oga kettenis blambert
|
|
(which creates a potential race against cd detach)
discussed with krw and dlg seperately
|
|
ok krw@ marco@ matthew@
|
|
inside st_interpret_sense() and then exit without making sure it's
set back to <= xs->datalen.
Fixes 'done < 0; strategy broken' panics when un-tar'ing /cvs from
my ahci DAT tape drive.
ok dlg@ more-or-less-ok matthew@
|