Changeset 4a2a6b8b in mainline for uspace/srv/bd/hr/raid1.c


Ignore:
Timestamp:
2024-09-06T22:09:33Z (11 months ago)
Author:
Miroslav Cimerman <mc@…>
Children:
57c61b0
Parents:
a19d7fc4
Message:

hr: add initial RAID 4 0 (non-rotating parity on disk 0)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/srv/bd/hr/raid1.c

    ra19d7fc4 r4a2a6b8b  
    8787static errno_t hr_raid1_bd_sync_cache(bd_srv_t *bd, aoff64_t ba, size_t cnt)
    8888{
     89        hr_volume_t *vol = bd->srvs->sarg;
     90
     91        errno_t rc;
     92        size_t i;
     93
     94        rc = hr_check_ba_range(vol, cnt, ba);
     95        if (rc != EOK)
     96                return rc;
     97
     98        hr_add_ba_offset(vol, &ba);
     99
    89100        fibril_mutex_lock(&big_lock);
    90         hr_volume_t *vol = bd->srvs->sarg;
    91 
    92         errno_t rc;
    93         size_t i;
    94 
    95         rc = hr_calc_ba(vol, cnt, &ba);
    96         if (rc != EOK) {
    97                 fibril_mutex_unlock(&big_lock);
    98                 return rc;
    99         }
    100101
    101102        for (i = 0; i < vol->dev_no; i++) {
     
    112113    void *buf, size_t size)
    113114{
     115        hr_volume_t *vol = bd->srvs->sarg;
     116
     117        errno_t rc;
     118        size_t i;
     119
     120        rc = hr_check_ba_range(vol, cnt, ba);
     121        if (rc != EOK)
     122                return rc;
     123
     124        hr_add_ba_offset(vol, &ba);
     125
    114126        fibril_mutex_lock(&big_lock);
    115         hr_volume_t *vol = bd->srvs->sarg;
    116 
    117         errno_t rc;
    118         size_t i;
    119 
    120         rc = hr_calc_ba(vol, cnt, &ba);
    121         if (rc != EOK) {
    122                 fibril_mutex_unlock(&big_lock);
    123                 return rc;
    124         }
    125127
    126128        for (i = 0; i < vol->dev_no; i++) {
     
    137139    const void *data, size_t size)
    138140{
     141        hr_volume_t *vol = bd->srvs->sarg;
     142
     143        errno_t rc;
     144        size_t i;
     145
     146        rc = hr_check_ba_range(vol, cnt, ba);
     147        if (rc != EOK)
     148                return rc;
     149
     150        hr_add_ba_offset(vol, &ba);
     151
    139152        fibril_mutex_lock(&big_lock);
    140         hr_volume_t *vol = bd->srvs->sarg;
    141 
    142         errno_t rc;
    143         size_t i;
    144 
    145         rc = hr_calc_ba(vol, cnt, &ba);
    146         if (rc != EOK) {
    147                 fibril_mutex_unlock(&big_lock);
    148                 return rc;
    149         }
    150153
    151154        for (i = 0; i < vol->dev_no; i++) {
Note: See TracChangeset for help on using the changeset viewer.