Age | Commit message (Collapse) | Author | |
---|---|---|---|
2016-04-12 | No need to rescan chunks in each discipline to find appropriate | Kenneth R Westerback | |
volume sector size. Determine volume sector size in sr_meta_init(). Pointed out, tweaked and ok jsing@ | |||
2016-04-04 | Enable creation of softraid volumes using disks with non-512 byte | Kenneth R Westerback | |
sectors. Volumes created will present a sector size equal to the largest sector size of the constituent disks. Softraid Metadata version cranks to 6 due to new field. ok jsing@ with tweaks that will follow soon. | |||
2015-07-21 | A few more daddr_t fixes. Rename 'phys_off' variables to 'offset' | Kenneth R Westerback | |
since they are now relative to chunks. Use 'blkno' as normal variable name for daddr_t items rather than mix of 'blkno, blk, offset. Change field name ssd_data_offset to ssd_data_blkno since it is a block and not byte quantity. No intentional functional change. | |||
2015-07-19 | Remove unneeded #include <disklabel.h>. | Kenneth R Westerback | |
ok jsing@ | |||
2015-07-19 | Stop passing daddr_t parameters for lengths. Use long since that's the type | Kenneth R Westerback | |
of the destination fields. ok jsing@ | |||
2015-07-19 | Stop adding and subtracting data offset. Just keep to chunk relative | Kenneth R Westerback | |
block offsets until actual i/o is constructed and needs the physical offset. Eliminate a number of <<DEV_BSIZE shifts as a bonus. No intentional functional change. Fixed and ok jsing@ | |||
2015-05-29 | Nuke annoying whitespace nits to shrink some future diffs. | Kenneth R Westerback | |
2015-03-14 | Remove some includes include-what-you-use claims don't | Jonathan Gray | |
have any direct symbols used. Tested for indirect use by compiling amd64/i386/sparc64 kernels. ok tedu@ deraadt@ | |||
2014-09-14 | remove uneeded proc.h includes | Jonathan Gray | |
ok mpi@ kspillner@ | |||
2014-07-12 | add a size argument to free. will be used soon, but for now default to 0. | Ted Unangst | |
after discussions with beck deraadt kettenis. | |||
2014-01-22 | Move sr_dump from the RAID5 code into shared code. Rename it to | Joel Sing | |
sr_dump_block and place it under the debug define in the process. | |||
2014-01-22 | Switch metadata saves from the system workq to the system taskq. | Joel Sing | |
ok dlg@ | |||
2014-01-21 | Order the volume state transitions by state value. | Joel Sing | |
2014-01-18 | Move the block get/put routines into the common code, instead of having | Joel Sing | |
RAID 6 borrow them from RAID 5. | |||
2013-11-21 | Cast daddr_t variable to (long long) even for %llx! | Kenneth R Westerback | |
2013-11-21 | Change a bunch of daddr_t variables that don't (obviously) contain | Kenneth R Westerback | |
512-byte-block information to int64_t, the underlying type of daddr_t at the moment. No change to .o files. Removal of now unneeded (long long) casts is next. | |||
2013-11-05 | Fix RAID levels 0, 4, 5, and 6 with partitions larger than 2TB. | Reyk Floeter | |
A 64bit bit operation with the 32bit strip size could overflow and result in ridiculously small volumes when using large partitions (eg. 4x 3TB in RAID 5 resulted in a ~2TB volume). It is fixed by casting the strip size to an unsigned 64bit value. ok tedu@ millert@ deraadt@ | |||
2013-11-01 | Sprinkle (long long) casts where %lld is being used to print daddr_t | Kenneth R Westerback | |
variables. Some random whitespace/knf repairs encountered on the way. ok miod@ on inspection, feedback & more suggestions from millert@ | |||
2013-06-11 | final removal of daddr64_t. daddr_t has been 64 bit for a long enough | Theo de Raadt | |
test period; i think 3 years ago the last bugs fell out. ok otto beck others | |||
2013-05-21 | Provide a function that handles the scheduling of work units. This | Joel Sing | |
simplifies the discipline code, avoids code duplication and moves the scheduling logic into a single location. ok krw@ | |||
2013-05-21 | Fix missing work unit state initialisations. | Joel Sing | |
2013-05-21 | Use a state to indicate that a work unit should only be constructed and not | Joel Sing | |
scheduled, rather than trying to imply this from the rebuild flag. | |||
2013-04-27 | Convert RAID 6 to new work unit completion routines. | Joel Sing | |
2013-04-26 | Add a SR_WUF_DISCIPLINE flag that identifies work units that have resulted | Joel Sing | |
from discipline specific I/O. Such work units are not associated with a SCSI xfer and are returned via sr_wu_put() on completion. | |||
2013-04-23 | Convert RAID6 to new ccb handling. | Joel Sing | |
2013-04-23 | Do not pass SR_CCBF_FREEBUF unless we are passing an already allocated | Joel Sing | |
buffer that we want freed; set SR_CCBF_FREEBUF when a buffer is allocated by the addio function. | |||
2013-04-23 | Rename ccb_flag to ccb_flags. | Joel Sing | |
2013-03-31 | Use consistent error handling when validating the number of chunks | Joel Sing | |
provided. | |||
2013-03-31 | Provide default resource allocation and free functions. Convert all | Joel Sing | |
disciplines except for AOE and CRYPTO, which require custom handlers. | |||
2013-03-31 | Pull the initialisation of runtime values out into a separate init | Joel Sing | |
function, rather than having it spread across create/assemble/alloc. Also handle strip size errors appropriately, rather than failing silently. ok krw@ | |||
2013-03-30 | Provide wrappers for scsi_io_get() and scsi_io_put(), that also include | Joel Sing | |
the sd_sync check/wakeup. Remove some unnecessary NULL checks whilst here. ok krw@ | |||
2013-03-29 | Properly release ccbs when restarting a work unit. | Joel Sing | |
2013-03-29 | Convert RAID 4/5/6 to new ccb completion code. | Joel Sing | |
2013-03-29 | Decouple wakeups on work unit completion from the type of I/O being | Joel Sing | |
performed. ok krw@ | |||
2013-03-29 | sd_wu_pending is only decremented when scsi_done() or scsi_io_put() are | Joel Sing | |
called. As a result, factor out the the sd_sync check/wakeup code and move it to after the scsi_done() call in sr_scsi_done(). Perform the same sd_sync check/wakeup after scsi_io_put() calls (including the addition of some that were previously missed). ok krw@ | |||
2013-03-27 | Rewrite the work unit handling code in the RAID 1/4/5/6 interrupt handlers. | Joel Sing | |
This simplifies the code and will allow for easier conversion to the workq based work unit completion routines. It also ensures that work units are always removed from the pending queue and that colliders are started, even in the event of an I/O failure. ok krw@ | |||
2013-03-25 | Factor out the code that is used to recreate work units - one copy of the | Joel Sing | |
code is sufficient. ok krw@ | |||
2013-03-02 | sr_alloc_resources() and sr_free_resources() can never be called without | Joel Sing | |
a valid struct sr_discipline. Remove redundant NULL pointer checks. | |||
2013-01-16 | Consistently call sr_scsi_done instead of scsi_done. | Joel Sing | |
ok krw@ | |||
2013-01-16 | Add a new capability flag to identify disciplines where read failures are | Joel Sing | |
not necessarily terminal (i.e. we have redundancy). ok krw@ | |||
2013-01-16 | Set resid to zero if the scsi transfer completed without error. | Joel Sing | |
ok krw@ | |||
2013-01-16 | Factor out code used to release ccbs from a workunit. | Joel Sing | |
ok krw@ | |||
2013-01-15 | Always initialise the discipline name, not just when we are doing a create. | Joel Sing | |
2013-01-15 | Keep a function pointer to the per-discipline I/O interrupt handler in the | Joel Sing | |
discipline data structure. To be used with an upcoming diff. | |||
2012-12-31 | Spell `calculation' correctly. | Miod Vallat | |
2012-10-08 | Provide a mechanism for the kernel to pass data through to the discipline | Joel Sing | |
during volume assembly. | |||
2011-12-25 | Initialise discipline function pointers with defaults and only override | Joel Sing | |
those that are needed by a specific discipline. | |||
2011-04-21 | Speedup XORP/XORQ operations in RAID6, do 32-bits at a time | Jordan Hargrave | |
2011-04-08 | Remove unused code/array | Jordan Hargrave | |
2011-04-08 | Fix raidp/raid6 to work with new iopool code, needed to swap wu's | Jordan Hargrave | |
Update to use dma_malloc for I/O blocks ok marco@ |