| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
ready for it yet.
|
|
|
|
| |
VOP_UNLOCK was being called with the wrong number of arguments.
|
|
|
|
|
|
|
|
| |
This will make a number of things easier in the future, as well as (finally!)
avoiding the Id-smashing problem which has plagued developers for so long.
Boy, I'm glad we're not using sup anymore. This update would have been
insane otherwise.
|
| |
|
| |
|
|
|
|
|
|
| |
leak fixes. Miscellaneous cleanup.
Partially submitted by: Matt White <mwhite+@CMU.EDU>
|
|
|
|
|
|
|
|
|
| |
Saves about 280 butes of source per driver, 56 bytes in object size
and another 56 bytes moves from data to bss.
No functional change intended nor expected.
GENERIC should be about one k smaller now :-)
|
| |
|
|
|
|
| |
Reviewed by: bde
|
|
|
|
|
|
| |
it in your kernel config file.
Requested (in essence) by: phk
|
|
|
|
|
|
|
| |
use sd87a or sd237e even if they start at the beginning of the slice.
You can also use sd85c if you prefer, although you need to change the
type field in the disklabel to "4.2BSD".
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
mailing list.
When initiating a write, ccdbuffer() returns two "struct ccdbuf *"s
linked together by the cb_mirror field. "cb_pflags &
CCDPF_MIRROR_DONE" is set to 0 on both of them.
When a component returns to ccdiodone(), it checks if "cb_pflags &
CCDPF_MIRROR_DONE" is set or not. If not, it sets the partner's
flag and returns. If it is, it means its partner has already
returned, so it will go to the regular cleanup (which is in the
fallthrough code).
There should be no performance or functionality changes unless the
higher-level scsi driver does something with the resid value. The change
is purely aesthetical and prepares us for the parity implementation.
|
|
|
|
|
|
| |
pseudo-device.
Doesn't use devfs correctly yet.
|
|
|
|
|
|
|
|
|
| |
caused by a different reason):
. #ifndef __FreeBSD__ around check for negative size, FreeBSD size_t is
unsigned
. Disable mirror/parity if interleave size is 0 (i.e., serial concatenation).
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(1) The reads are always done from the first n/2 disks.
(2) Each write is done twice, to the "data" disk (in the first half) and
the "mirror" disk (in the second half).
ccdbuffer() now takes an extra argument (struct ccdbuf **) and stores
the pointer to ccdbuf in there. In case of a mirrored write, it
allocates and stores two pointers. The "residual" is also doubled
for mirrored writes so that ccdiodone() can correctly tell when all
the writes are done.
|
|
|
|
|
| |
reduce the size to half, etc. Right now it only uses the first n/2 disks
for both read and write.
|
|
|
|
| |
allocate space around parity blocks.
|
| |
|
| |
|
|
|