Changeset 56214383 in mainline for uspace/srv/bd/hr/raid5.c


Ignore:
Timestamp:
2025-03-29T12:09:58Z (3 months ago)
Author:
Miroslav Cimerman <mc@…>
Children:
49de61c
Parents:
8a65373
Message:

hr: util: hr_util_add_hotspare()

File:
1 edited

Legend:

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

    r8a65373 r56214383  
    150150errno_t hr_raid5_add_hotspare(hr_volume_t *vol, service_id_t hotspare)
    151151{
    152         HR_DEBUG("hr_raid5_add_hotspare()\n");
     152        HR_DEBUG("%s()", __func__);
    153153
    154154        fibril_mutex_lock(&vol->lock);
    155         fibril_mutex_lock(&vol->hotspare_lock);
    156 
    157         if (vol->hotspare_no >= HR_MAX_HOTSPARES) {
    158                 HR_ERROR("hr_raid5_add_hotspare(): cannot add more hotspares "
    159                     "to \"%s\"\n", vol->devname);
    160                 fibril_mutex_unlock(&vol->lock);
    161                 return ELIMIT;
    162         }
    163 
    164         vol->hotspares[vol->hotspare_no].svc_id = hotspare;
    165 
    166         vol->hotspare_no++;
    167 
    168         hr_update_hotspare_status(vol, vol->hotspare_no - 1, HR_EXT_HOTSPARE);
     155
     156        errno_t rc = hr_util_add_hotspare(vol, hotspare);
     157        if (rc != EOK)
     158                goto end;
    169159
    170160        /*
     
    184174        }
    185175
    186         fibril_mutex_unlock(&vol->hotspare_lock);
     176end:
    187177        fibril_mutex_unlock(&vol->lock);
    188178
    189         return EOK;
     179        return rc;
    190180}
    191181
     
    770760        hr_extent_t *rebuild_ext = &vol->extents[bad];
    771761
    772         rc = block_init(rebuild_ext->svc_id);
    773         if (rc != EOK) {
    774                 HR_ERROR("hr_raid5_rebuild(): initing (%lu) failed, "
    775                     "aborting rebuild\n", rebuild_ext->svc_id);
    776                 goto end;
    777         }
    778 
    779762        HR_DEBUG("hr_raid5_rebuild(): starting rebuild on (%lu)\n",
    780763            rebuild_ext->svc_id);
Note: See TracChangeset for help on using the changeset viewer.