Changeset 4d42a1b in mainline for uspace/srv/bd/hr/raid1.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/raid1.c

    r6123753 r4d42a1b  
    228228                return;
    229229
    230         if (atomic_compare_exchange_strong(&vol->pending_invalidation, &exp,
    231             false)) {
    232                 fibril_mutex_lock(&vol->deferred_list_lock);
    233                 hr_process_deferred_invalidations(vol);
    234                 fibril_mutex_unlock(&vol->deferred_list_lock);
    235         }
    236 
    237230        fibril_rwlock_read_lock(&vol->extents_lock);
    238231        fibril_rwlock_read_lock(&vol->states_lock);
     
    289282        switch (rc) {
    290283        case ENOMEM:
    291                 fibril_mutex_lock(&vol->deferred_list_lock);
    292 
    293                 service_id_t invalid_svc_id = vol->extents[extent].svc_id;
    294 
    295                 list_foreach(vol->deferred_invalidations_list, link,
    296                     hr_deferred_invalidation_t, di) {
    297                         if (di->svc_id == invalid_svc_id) {
    298                                 assert(vol->extents[extent].status ==
    299                                     HR_EXT_INVALID);
    300                                 goto deferring_end;
    301                         }
    302                 }
    303 
    304                 assert(vol->extents[extent].svc_id != HR_EXT_INVALID);
    305 
    306284                hr_update_ext_status(vol, extent, HR_EXT_INVALID);
    307 
    308                 size_t i = list_count(&vol->deferred_invalidations_list);
    309                 vol->deferred_inval[i].svc_id = invalid_svc_id;
    310                 vol->deferred_inval[i].index = extent;
    311 
    312                 list_append(&vol->deferred_inval[i].link,
    313                     &vol->deferred_invalidations_list);
    314 
    315                 atomic_store(&vol->pending_invalidation, true);
    316         deferring_end:
    317 
    318                 fibril_mutex_unlock(&vol->deferred_list_lock);
    319285                break;
    320286        case ENOENT:
Note: See TracChangeset for help on using the changeset viewer.