Changeset 800d188 in mainline for uspace/srv/bd/hr/raid1.c


Ignore:
Timestamp:
2025-04-15T07:00:31Z (4 weeks ago)
Author:
Miroslav Cimerman <mc@…>
Children:
29e7cc7
Parents:
ca7fa5b
git-author:
Miroslav Cimerman <mc@…> (2025-04-15 06:55:25)
git-committer:
Miroslav Cimerman <mc@…> (2025-04-15 07:00:31)
Message:

hr: metadata saving on stop

New bool argument for hr_metadata_save() to indicate if
we want callback too (on array stop we don't, so we won't
init a rebuild).

File:
1 edited

Legend:

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

    rca7fa5b r800d188  
    105105        new_volume->hr_bds.sarg = new_volume;
    106106
     107        new_volume->state_callback = hr_raid1_ext_state_callback;
     108
    107109        /* force volume state update */
    108110        hr_mark_vol_state_dirty(new_volume);
     
    222224        if (!atomic_compare_exchange_strong(&vol->state_dirty, &exp, false))
    223225                return;
     226
     227        fibril_mutex_lock(&vol->md_lock);
     228
     229        /* XXX: will be wrapped in md specific fcn ptrs */
     230        vol->in_mem_md->counter++;
     231
     232        fibril_mutex_unlock(&vol->md_lock);
    224233
    225234        fibril_rwlock_read_lock(&vol->extents_lock);
     
    247256
    248257                if (old_state != HR_VOL_REBUILD) {
     258                        /* XXX: allow REBUILD on INVALID extents */
    249259                        if (vol->hotspare_no > 0) {
    250260                                fid_t fib = fibril_create(hr_raid1_rebuild,
     
    427437                        io->type = type;
    428438                        io->vol = vol;
    429                         io->state_callback = hr_raid1_ext_state_callback;
    430439
    431440                        hr_fgroup_submit(group, hr_io_worker, io);
     
    541550        fibril_rwlock_write_unlock(&vol->states_lock);
    542551
    543         rc = hr_metadata_save(vol);
     552        rc = hr_metadata_save(vol, WITH_STATE_CALLBACK);
    544553
    545554end:
     
    576585        fibril_mutex_lock(&vol->hotspare_lock);
    577586
     587        /* XXX: allow REBUILD on INVALID extents */
    578588        if (vol->hotspare_no == 0) {
    579589                HR_WARN("hr_raid1_rebuild(): no free hotspares on \"%s\", "
Note: See TracChangeset for help on using the changeset viewer.