Changeset fde02a6 in mainline


Ignore:
Timestamp:
2024-11-15T14:38:38Z (6 months ago)
Author:
Miroslav Cimerman <mc@…>
Children:
8f7e1b1
Parents:
da0570a
Message:

hr: be more careful with assembly from metadata

Rewrite vol→extents only after all metadata
was successfully read and validated.

File:
1 edited

Legend:

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

    rda0570a rfde02a6  
    133133
    134134        service_id_t cfg_svc_id_order[HR_MAXDEVS] = { 0 };
    135         for (size_t i = 0; i < vol->dev_no; i++) {
     135        for (size_t i = 0; i < vol->dev_no; i++)
    136136                cfg_svc_id_order[i] = vol->extents[i].svc_id;
    137                 vol->extents[i].svc_id = 0;
    138                 vol->extents[i].status = HR_EXT_MISSING;
    139         }
    140137
    141138        int32_t md_order[HR_MAXDEVS] = { 0 };
     
    155152
    156153        for (size_t i = 0; i < vol->dev_no; i++) {
     154                vol->extents[i].svc_id = 0;
     155                vol->extents[i].status = HR_EXT_MISSING;
     156        }
     157
     158        /* sort */
     159        for (size_t i = 0; i < vol->dev_no; i++) {
    157160                for (size_t j = 0; j < vol->dev_no; j++) {
    158161                        if (i == (uint32_t) md_order[j]) {
Note: See TracChangeset for help on using the changeset viewer.