Changeset 137f7cf5 in mainline for uspace/srv/bd/hr/util.c


Ignore:
Timestamp:
2025-06-17T22:29:10Z (5 days ago)
Author:
Miroslav Cimerman <mc@…>
Children:
3c518fc
Parents:
a3486f2
git-author:
Miroslav Cimerman <mc@…> (2025-06-17 22:04:20)
git-committer:
Miroslav Cimerman <mc@…> (2025-06-17 22:29:10)
Message:

hr: add common hr_sync_extents() fcn

File:
1 edited

Legend:

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

    ra3486f2 r137f7cf5  
    11001100}
    11011101
     1102errno_t hr_sync_extents(hr_volume_t *vol)
     1103{
     1104        errno_t rc = EOK;
     1105
     1106        fibril_rwlock_read_lock(&vol->extents_lock);
     1107        for (size_t e = 0; e < vol->extent_no; e++) {
     1108                fibril_rwlock_read_lock(&vol->states_lock);
     1109                hr_ext_state_t s = vol->extents[e].state;
     1110                fibril_rwlock_read_unlock(&vol->states_lock);
     1111
     1112                service_id_t svc_id = vol->extents[e].svc_id;
     1113
     1114                if (s == HR_EXT_ONLINE || s == HR_EXT_REBUILD) {
     1115                        errno_t rc = hr_sync_cache(svc_id, 0, 0);
     1116                        if (rc != EOK && rc != ENOTSUP)
     1117                                vol->hr_ops.ext_state_cb(vol, e, rc);
     1118                }
     1119        }
     1120        fibril_rwlock_read_unlock(&vol->extents_lock);
     1121
     1122        vol->hr_ops.vol_state_eval(vol);
     1123
     1124        fibril_rwlock_read_lock(&vol->states_lock);
     1125        hr_vol_state_t s = vol->state;
     1126        fibril_rwlock_read_unlock(&vol->states_lock);
     1127
     1128        if (s == HR_VOL_FAULTY)
     1129                rc = EIO;
     1130
     1131        return rc;
     1132}
     1133
    11021134/** @}
    11031135 */
Note: See TracChangeset for help on using the changeset viewer.