Changeset 4d42a1b in mainline for uspace/srv/bd/hr/raid1.c
- Timestamp:
- 2025-03-06T20:13:11Z (5 months ago)
- Children:
- 10005fd
- Parents:
- 6123753
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/srv/bd/hr/raid1.c
r6123753 r4d42a1b 228 228 return; 229 229 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 237 230 fibril_rwlock_read_lock(&vol->extents_lock); 238 231 fibril_rwlock_read_lock(&vol->states_lock); … … 289 282 switch (rc) { 290 283 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 306 284 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);319 285 break; 320 286 case ENOENT:
Note:
See TracChangeset
for help on using the changeset viewer.