Age | Commit message (Collapse) | Author |
|
a crypto volume when it is assembling it.
|
|
during volume assembly.
|
|
from the given volume ignore the no-auto assemble flag, since the root
file system is located on it.
|
|
|
|
size of 512 bytes - any other size is not currently supported.
ok krw@
|
|
handler to emphasise that it is for bio ioctls only.
Discovered the hard way by dhill@
|
|
to provide useful feedback, rather than reporting an ioctl failure and
leaving the user to consult dmesg. For now we continue to print most things
to the console, even if the message is a result of an ioctl.
|
|
|
|
|
|
prints. Also rename sr_uuid_get() to sr_uuid_generate().
|
|
|
|
any assembly. This avoids a panic when attempting to assemble a RAID 1 (or
other) volume as a RAID 0 volume. Also reorder some of the other checks and
diagnostics performed during assembly.
|
|
|
|
us to play some tricks in setroot().
|
|
number of variables that are needed to detect and assemble volumes. A
sr_metadata struct can be allocated and used via the sbc_metadata
pointer, which we now do in the kernel boot probe/assembly code.
|
|
Many thanks to Marco Peereboom for his assistance with testing and
debugging. Thanks also to Josh Grosse and Chris Jackman for testing.
|
|
initialise both the volume and chunk metadata before the discipline
specific sd_create() function is called. The sr_meta_init_complete()
function is then called to complete the initialisation based on values
provided by sd_create().
|
|
if we correctly read and validated the disklabel. Always check that this
flag is set before using the DUID from the disklabel.
Discussed with deraadt@
ok krw@
|
|
cover the no redundancy/no rebuild case. Use these for the AOE, crypto and
RAID 0 disciplines.
|
|
those that are needed by a specific discipline.
|
|
installboot has the correct details. Also zero the boot DUID list before
populating it in installboot, preventing the DUIDs of offline chunks from
remaining around.
|
|
metadata from the volume metadata rather than using the metadata from some
random chunk. The coerced size is gained from another online chunk.
|
|
From Pedro Martelletto.
ok krw@ mikeb@
|
|
coerced size rather than the physical size of another chunk.
|
|
|
|
blocks or boot loader to chunks that are not online.
ok mikeb@
|
|
sd_set_chunk_state() as the new state.
ok jsing@
|
|
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@
|
|
|