Age | Commit message (Collapse) | Author |
|
map the rootduid to the DUID of the softraid volume. This means that
regardless of where the kernel is loaded from we always get the softraid
volume as the root device, providing we booted from one of its chunks.
If we boot from any other disk then the rootduid remains unchanged.
With this diff it is now possible to have the root filesystem on softraid,
however at this stage the kernel still needs to be loaded from a separate
FFS partition.
ok deraadt@
|
|
to store the DUID of the softraid volume and each of the chunks that it
is assembled from. This allows us to correctly identify the root disk.
ok deraadt@
|
|
or invalid metadata; (2) a new volume with no existing metadata; and (3)
an existing volume with metadata. This removes duplicated code and
simplifies the code path.
Also ensure that we only process the optional metadata once per volume
and not once per chunk. Move the optional metadata handler calls into
sr_ioctl_createraid().
|
|
will allow new optional metadata types to be added without needing to
change the softraid metadata version.
Note that this commit changes the softraid metadata version, however
an upgrade from older metadata is handled automatically. A full backup
prior to upgrading is still strongly recommended.
With feedback from stsp@ and marco.
|
|
metadata handling code. This will simplify upcoming changes.
|
|
ok deraadt
|
|
is causing problems when trying to boot sparc64 from an isp(4).
Verified to fix the sparc64/isp(4) regression by krw@; ok deraadt@
|
|
saa_luns instead of adapter_buswidth and luns in the prototype link.
ok dlg@, miod@
|
|
is a partial block. Also correctly handle the case where there is no
partial block. Whilst here remove a pointless variable.
Issues spotted by and based on diffs from Piotr Durlej - thanks!
ok marco@
|
|
avoid duplication. Implement a sr_shutdownhook() function that simply
calls sr_shutdown() and use this for the shutdown hook.
ok marco@
|
|
|
|
having one per volume.
ok marco@
|
|
however since this code exists it still should work correctly.
|
|
it again.
|
|
to indicate if we should force a metadata write.
ok marco@
|
|
SR_DEBUG enabled. Broken since r1.227.
|
|
ok jsing@
|
|
sr_metadata_list struct to sr_boot_chunk and use a sr_metadata struct
rather than an array of u_int8_t when storing the metadata. Also rename
some variables to keep the boot volume/boot chunk consistency.
This diff also fixes a memory leak where the structures were never freed
for key disks. Otherwise there should be no functional change.
ok marco@
|
|
ok marco@
|
|
scsibus(4) for all attached disks, rather than one scsibus(4) per
disk. This takes advantage of recent improvements in the SCSI
midlayer to better support hotplug devices, and also decouples
softraid(4) from scsibus(4) device unit numbers.
ok jsing@, dlg@, krw@, deraadt@; marco@'s still unconvinced
|
|
to a separately allocated SCSI command structure.
ok marco@, jsing@
|
|
safely use them. Found by Clang.
"go for it" marco@
|
|
|
|
not handled.
based on atascsi code.
ok marco@
|
|
discipline should always reflect the correct status. This fixes unexpected
state changes jordan saw.
|
|
ok jsing
|
|
|
|
but for now this allows us to move forward.
|
|
ok dlg@ marco@
|
|
discipline. This results in a drive sensor being attached for each volume
under the same sensordev, instead of having multiple sensordevs each with
a single drive. Fixes PR6576.
Tested by Mattieu Baptiste.
ok deraadt@
|
|
|
|
exceed MAXPHYS in size.
Thanks to ckuethe@ and stsp@ for testing.
ok marco@
|
|
installing boot code.
ok marco@
|
|
prodded and ok deraadt
|
|
logical block address, not the size of the device. Adjust softraid's
handling of the commands accordingly.
Fixes panics when newfs'ing the 'c' partition of a softraid volume
(one shouldn't newfs 'c' partitions of any device). Reported by
Andreas Bartlet via tech@. Fix tested by Andreas.
ok marco@. functionally identical diff developed by dlg@
|
|
call while in interrupt context.
Contains an additional spl dance as found by thib.
Tested by many opn various arches. Note that raid 0/4/5/6 have not been
moved over yet.
|
|
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@
|
|
curproc. A bunch of callers were passing in 0 (not even NULL, 0) as this
pointer, which was fine until the called vnode function tried to do
something with it. Typically, this code was then copy/pasted to various
parts of the tree.
Accept the facts of life and switch all of these over to passing curproc
for now until the argument can be removed.
Discovered by stsp trying to create a softraid on top of a vnd, which
crashed with a NULL deref in vndioctl.
softraid bits tested by mikeb and jsing. raidframe bits tested by pea,
matthieu and naddy. The rest tested by at least thib, jsing and myself.
ok thib@, jsing@.
|
|
different levels; ok oga kettenis
|
|
|
|
where disks can be on alldevs, however they are not yet initialised and
have not yet called disk_attach() (in particular this means that dk_label
is a null pointer). Also, if we sleep restart the scan from the top of
the disklist in case things have changed whilst we slept.
ok marco@
|
|
This is more clear, and as thib pointed out, the default in softraid was
wrong. ok thib.
|
|
ok marco@
|
|
metadata. This allows us to implement seamless transitions from the
previous metadata version to the current version, avoiding the need to
recreate the softraid volume.
Joint work with marco@ during c2k10.
ok marco@
|
|
step in elminating 'struct scsi_device' entirely.
Spotted and initial diff from matthew@.
ok matthew@ dlg@ deraadt@ marco@ miod@
|
|
not supported.
this prevents a panic caused by recursively entering the ioctl handler that
now happens on boot when sd tries to enable write cache on all disks.
found by ckeuthe@
tested by todd@
|
|
ioctl requests, and dont pass the proc pointers around for any ioctl
requests in scsi land at all. neither were used, so trim the fat.
ok krw@ marco@
|
|
|
|
low-hanging splbio/splx pairs that are no longer needed and see if
this reveals any hidden scsi flaws.
ok dlg@
|
|
gets rid of #include <sys/dkio.h> in sys/ioctl.h and adds #include
<sys/dkio.h> to the places that actually want and use the disk
ioctls.
this became an issue when krw@'s X build failed when he was testing
a change to dkio.h.
tested by krw@
help from and ok miod@
|