| Age | Commit message (Collapse) | Author |
|
ccd component partition. Note that the ccd driver still allows partitions
of any types as components since an on-disk BSD disklabel isn't available
on some port.
|
|
|
|
component pathnames rather than the last one.
|
|
|
|
default, as the copyright on the main file (ffs_softdep.c) is such
that is has been put into gnusrc. options SOFTDEP will pull this
in. This code also contains the trickle syncer.
Bump version number to 1.4O
|
|
avoid biodone()ing the original buf twice when a component buf
gets an error. fixes PR 8704.
|
|
|
|
|
|
|
|
|
|
on non-0 CCD units to crash the system.
|
|
|
|
just lockmgr(), not our home-grown locking functions.
|
|
a fifo of component buffers, and free them if ccdbuffer() fails. Once
all component buffers are build, run through the fifo and fire off the
requests to the components.
|
|
|
|
|
|
better mirroring solution.
The ccd driver will stay, even in the presence of RAIDframe, for applications
where just RAID-0 is needed (much smaller code footprint).
|
|
|
|
|
|
from Noriyuki SODA <soda@sra.co.jp>, PR #5729.
|
|
|
|
exceeds is not a size of partition but end of partition.
|
|
(a) total sector size is different from the size of ccd, or
(b) size of a partition exceeds the size of ccd.
|
|
|
|
|
|
|
|
|
|
ioctl(2) is issued; the uninitialized disklabel pointer might get dereferenced
otherwise.
|
|
|
|
- If the partition was previously open, don't do the open/close steps.
(Sync with other disk drivers.)
- foosize()'s return value is in DEV_BSIZE units; adjust the size obtained
from the disklabel accordingly.
|
|
|
|
- Keep a freelist of component buffer headers, defaulting
to 8 headers per component (tunable with the CCDNBUF
kernel compile option).
- When allocating a component buffer, try to pull a header
off the freelist first, falling back on MALLOC() if the
freelist is empty. Use MALLOC() rather than malloc(),
because it will attempt to short-cut the allocation before
actually making a full-blown malloc() call.
- Keep statistics on how many component buffer headers have
been allocated and how many of those allocations have
resulted in freelist misses.
With these changes, I observed measurable decreases in system and
wall clock time on operations on an 8G ccd, as well as a measurable
drop in the time spent in ccdbuffer() (measured with kernel profiling).
|
|
From Klaus Klein <kleink@layla.inka.de>, PR #3161.
|
|
meaningful. Bug noticed by Marshall Midden <m4@nts.umn.edu>.
|
|
|
|
|
|
condition if:
- ccd was not initialized
- partition did not exist
|
|
|
|
|
|
|
|
|
|
|
|
any partition other than RAW_PART is opened before configuring the
ccd. Bug pointed out by Matthew Green.
|
|
|
|
|
|
Satoshi Asami and Nisha Talagala. For details on using data mirroring,
see the ccd(4) manual page.
|
|
- New metrics handling. Metrics are now kept in the new
`struct disk'. Busy time is now stored as a timeval, and
transfer count in bytes.
- Storage for disklabels is now dynamically allocated, so that
the size of the disk structure is not machine-dependent.
- Several new functions for attaching and detaching disks, and
handling metrics calculation.
Old-style instrumentation is still supported in drivers that did it before.
However, old-style instrumentation is being deprecated, and will go away
once the userland utilities are updated for the new framework.
For usage and architectural details, see the forthcoming disk(9) manual
page.
|
|
were allocated, which may not be the same as the number of components
in the ccd. From Don Lewis <gdonl@gv.ssi1.com>. Fixes PR #1820.
|
|
exclusive lock of a ccd device while another process is unconfiguring
that same device, the first process would never awaken (unless interrupted).
|
|
to absolute if part != RAW_PART.
|