Changeset 6aafb48 in mainline for uspace/srv/bd/hr/hr.c


Ignore:
Timestamp:
2025-07-04T10:14:23Z (9 months ago)
Author:
Miroslav Cimerman <mc@…>
Children:
974f9ba
Parents:
b247c714
Message:

hr: rebuild: fix deadlock on extents_lock

File:
1 edited

Legend:

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

    rb247c714 r6aafb48  
    358358        }
    359359
    360         fibril_rwlock_read_lock(&vol->extents_lock);
     360        fibril_rwlock_write_lock(&vol->extents_lock);
    361361        fibril_rwlock_write_lock(&vol->states_lock);
    362362
     
    368368        case HR_EXT_FAILED:
    369369                fibril_rwlock_write_unlock(&vol->states_lock);
    370                 fibril_rwlock_read_unlock(&vol->extents_lock);
     370                fibril_rwlock_write_unlock(&vol->extents_lock);
    371371                async_answer_0(icall, EINVAL);
    372372                return;
     
    374374                hr_update_ext_state(vol, extent_idx_to_fail, HR_EXT_FAILED);
    375375                (void)vol->meta_ops->erase_block(ext->svc_id);
     376                block_fini(ext->svc_id);
     377                ext->svc_id = 0;
    376378                hr_mark_vol_state_dirty(vol);
    377379        }
    378380
    379381        fibril_rwlock_write_unlock(&vol->states_lock);
    380         fibril_rwlock_read_unlock(&vol->extents_lock);
     382        fibril_rwlock_write_unlock(&vol->extents_lock);
    381383
    382384        vol->hr_ops.vol_state_eval(vol);
Note: See TracChangeset for help on using the changeset viewer.