Changeset 00d80c6 in mainline


Ignore:
Timestamp:
2025-05-08T17:41:46Z (7 weeks ago)
Author:
Miroslav Cimerman <mc@…>
Children:
dbb1e3f
Parents:
2f21cd4
Message:

hr: raid5.c: REBUILD fix

Make it work until RAID 5 rewrite is complete.

File:
1 edited

Legend:

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

    r2f21cd4 r00d80c6  
    831831                 * during rebuild.
    832832                 */
    833                 fibril_rwlock_write_unlock(&vol->states_lock);
    834                 fibril_mutex_unlock(&vol->lock);
    835                 fibril_mutex_lock(&vol->lock);
    836                 fibril_rwlock_write_lock(&vol->states_lock);
     833
     834                /*
     835                 * fibril_rwlock_write_unlock(&vol->states_lock);
     836                 * fibril_mutex_unlock(&vol->lock);
     837                 * fibril_mutex_lock(&vol->lock);
     838                 * fibril_rwlock_write_lock(&vol->states_lock);
     839                 */
    837840        }
    838841
     
    841844
    842845        hr_update_ext_state(vol, bad, HR_EXT_ONLINE);
    843 
    844         rc = vol->meta_ops->save(vol, WITH_STATE_CALLBACK);
    845 
    846 end:
    847         (void)hr_raid5_update_vol_state(vol);
    848846
    849847        fibril_rwlock_write_unlock(&vol->states_lock);
     
    851849        fibril_mutex_unlock(&vol->lock);
    852850
     851        rc = vol->meta_ops->save(vol, WITH_STATE_CALLBACK);
     852
     853        fibril_mutex_lock(&vol->lock);
     854        fibril_rwlock_read_lock(&vol->extents_lock);
     855        fibril_rwlock_write_lock(&vol->states_lock);
     856
     857end:
     858        (void)hr_raid5_update_vol_state(vol);
     859
     860        fibril_rwlock_write_unlock(&vol->states_lock);
     861        fibril_rwlock_read_unlock(&vol->extents_lock);
     862        fibril_mutex_unlock(&vol->lock);
     863
    853864        if (buf != NULL)
    854865                free(buf);
Note: See TracChangeset for help on using the changeset viewer.