Age | Commit message (Collapse) | Author | |
---|---|---|---|
2014-01-22 | Add some debug messages to the rebuild process and fix a bogus comment. | Joel Sing | |
2014-01-22 | Add a debug flag for rebuild. | Joel Sing | |
2014-01-22 | Make rebuild a discipline specific function pointer. For now, this defaults | Joel Sing | |
to the existing rebuild code. ok krw@ | |||
2014-01-22 | The sr_rebuild function does not actually do the rebuild, it only starts | Joel Sing | |
the rebuild thread. Rename it to sr_rebuild_start to make this clearer. ok krw@ | |||
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 | Actually use the correct TAILQ field. | Joel Sing | |
2014-01-21 | Allow for variable sized work units. | Joel Sing | |
ok krw@ | |||
2014-01-21 | Use a TAILQ for tracking work units, rather than an array. This will allow | Joel Sing | |
for variable size work units. While here, remove some pointless checks. ok krw@ | |||
2014-01-21 | Stop bzeroing the work unit when it is initialised. Rather, only initialise | Joel Sing | |
the specific fields that are either not persistent for the life of the workunit and/or not reinitialised in sr_wu_release_ccbs. This is also necessary for upcoming changes. ok krw@ | |||
2014-01-20 | Convert the softraid work unit workqs to taskqs. | Joel Sing | |
ok dlg@ | |||
2014-01-20 | Replace dedicated swu_fake variable with a work unit flag. | Joel Sing | |
ok krw@ | |||
2014-01-19 | Assert that a workunit has ccbs if it is being scheduled. Otherwise we | Joel Sing | |
deadlock since nothing will ever come back to tell us that the workunit is completed. ok krw@ | |||
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. | |||
2014-01-18 | Rename softraid RAIDP to softraid RAID5. | Joel Sing | |
Discussed with krw@ | |||
2014-01-18 | Remove the RAID 4 discipline from softraid. Anyone sensible would use RAID | Joel Sing | |
5 instead of RAID 4, assuming both were functional. Discussed with krw@ | |||
2014-01-05 | On some architectures you can get away with using an uninitialised mutex; | Joel Sing | |
this is not the case on hppa (practically the only architecture where unlocked has a non-zero value). This one has been hiding since r1.223... Found the hard way by juanfra@ | |||
2013-11-19 | Print daddr_t's with %lld, size_t's with %zu, int's with %d and | Kenneth R Westerback | |
u_int32_t's with %u. Translate DL_GETPSIZE() results to 512-byte-block values with DL_SECTOBLK(). ok jsing@ | |||
2013-11-04 | substantial namespace cleanup. Might go a little bit too far, but we | Theo de Raadt | |
can expose some of the kernel structures with split .h files if need be. Discussed with various, including jsing. | |||
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-07-19 | Don't use uninitialized variable when a simple 0 will do. | Kenneth R Westerback | |
Found by Maxime Villard. ok jsing@ | |||
2013-07-01 | When an I/O error occurs on a softraid chunk, only take it offline if the | Joel Sing | |
discipline supports redundancy. In the non-redundant case, there is little to gain my failing the chunk, in fact it just makes any form of data recovery significantly harder. ok krw@ todd@ | |||
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 | Ensure that sc_lock is held when calling sr_meta_native_bootprobe() - the | Joel Sing | |
softraid status functions will complain otherwise. Found the hard way by ajacoutot@ | |||
2013-05-21 | sr_raid_startwu() is no longer called from interrupt context, hence does | Joel Sing | |
not need to invoke a workq-based callback. | |||
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 | Make the sr_raid_startwu() function handle deferred work units, instead of | Joel Sing | |
the caller having to handle the state changes. | |||
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-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 | Rename ccb_flag to ccb_flags. | Joel Sing | |
2013-04-21 | Convert RAID1 to the new work unit completion functions and generic | Joel Sing | |
interrupt handler. Disciplines such as RAID1/4/5/6 need a way to intercept I/O when the work unit is complete, but before the SCSI xfer is complete. This is provided via a sd_scsi_wu_done hook, which enables work units to be restarted or otherwise modified before the SCSI xfer completion occurs. ok krw@ | |||
2013-03-31 | Use the discipline name instead of the product string when reporting the | Joel Sing | |
attachment. | |||
2013-03-31 | The return value of sd_free_resources() is never checked and all of the | Joel Sing | |
implementations only ever returned zero. Change the return value from int to void instead of pretending it might mean something. | |||
2013-03-31 | Fix compilation with debug. | Joel Sing | |
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-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-30 | Provide a default discipline interrupt handling function and migrate all of | Joel Sing | |
the disciplines that now have the same interrupt code. ok krw@ | |||
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-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-10 | Rename sc_dis to sc_targets, since it is an array of targets that also | Joel Sing | |
happen to be softraid disciplines. ok krw@ | |||
2013-03-05 | Track attached softraid disciplines via a queue. This prevents the need to | Joel Sing | |
scan the sparse SCSI targets array and simplifies code. Disciplines are now also shutdown in reverse attach order, making manually stacked softraid volumes somewhat more practical. ok krw@ | |||
2013-01-18 | The workunit completion needs to run at IPL_BIO, at least for now. | Joel Sing | |
2013-01-18 | Tweak workunit completion. | Joel Sing | |
2013-01-18 | Implement common workunit completion functions and handle the completion | Joel Sing | |
via a workq callback. Also provide a discipline specific hook that allows it to optionally handle the final part of the workunit completion. ok krw@ | |||
2013-01-18 | Reset I/O counters when releasing ccbs. | Joel Sing | |
ok krw@ | |||
2013-01-16 | Add a function that handles the completion of a ccb. | Joel Sing | |
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@ |