Changeset 4d42a1b in mainline for uspace/srv/bd/hr/util.c


Ignore:
Timestamp:
2025-03-06T20:13:11Z (5 months ago)
Author:
Miroslav Cimerman <mc@…>
Children:
10005fd
Parents:
6123753
Message:

hr: remove deferred invalidations

File:
1 edited

Legend:

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

    r6123753 r4d42a1b  
    410410}
    411411
    412 void hr_process_deferred_invalidations(hr_volume_t *vol)
    413 {
    414         HR_DEBUG("hr_raid1_update_vol_status(): deferred invalidations\n");
    415 
    416         fibril_mutex_lock(&vol->halt_lock);
    417         vol->halt_please = true;
    418         fibril_rwlock_write_lock(&vol->extents_lock);
    419         fibril_rwlock_write_lock(&vol->states_lock);
    420         fibril_mutex_lock(&vol->hotspare_lock);
    421 
    422         list_foreach(vol->deferred_invalidations_list, link,
    423             hr_deferred_invalidation_t, di) {
    424                 assert(vol->extents[di->index].status == HR_EXT_INVALID);
    425 
    426                 HR_DEBUG("moving invalidated extent no. %lu to hotspares\n",
    427                     di->index);
    428 
    429                 block_fini(di->svc_id);
    430 
    431                 size_t hs_idx = vol->hotspare_no;
    432 
    433                 vol->hotspare_no++;
    434 
    435                 hr_update_hotspare_svc_id(vol, hs_idx, di->svc_id);
    436                 hr_update_hotspare_status(vol, hs_idx, HR_EXT_HOTSPARE);
    437 
    438                 hr_update_ext_svc_id(vol, di->index, 0);
    439                 hr_update_ext_status(vol, di->index, HR_EXT_MISSING);
    440 
    441                 assert(vol->hotspare_no < HR_MAX_HOTSPARES + HR_MAX_EXTENTS);
    442         }
    443 
    444         for (size_t i = 0; i < HR_MAX_EXTENTS; i++) {
    445                 hr_deferred_invalidation_t *di = &vol->deferred_inval[i];
    446                 if (di->svc_id != 0) {
    447                         list_remove(&di->link);
    448                         di->svc_id = 0;
    449                 }
    450         }
    451 
    452         fibril_mutex_unlock(&vol->hotspare_lock);
    453         fibril_rwlock_write_unlock(&vol->states_lock);
    454         fibril_rwlock_write_unlock(&vol->extents_lock);
    455         vol->halt_please = false;
    456         fibril_mutex_unlock(&vol->halt_lock);
    457 }
    458 
    459412/** @}
    460413 */
Note: See TracChangeset for help on using the changeset viewer.