Changeset 4660649 in mainline


Ignore:
Timestamp:
2025-01-12T16:12:01Z (5 months ago)
Author:
Miroslav Cimerman <mc@…>
Children:
ee47537
Parents:
0d77d30
Message:

hr: RAID0: return ENOMEM on out-of-memory READs

File:
1 edited

Legend:

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

    r0d77d30 r4660649  
    240240        /* propagate sync */
    241241        if (type == HR_BD_SYNC && ba == 0 && cnt == 0) {
    242                 hr_fgroup_t *group = hr_fgroup_create(vol->fge, vol->extent_no);
     242                hr_fgroup_t *group = hr_fgroup_create(vol->fge,
     243                    vol->extent_no);
    243244
    244245                for (size_t i = 0; i < vol->extent_no; i++) {
     
    255256
    256257                size_t bad;
    257                 (void)hr_fgroup_wait(group, NULL, &bad);
     258                rc = hr_fgroup_wait(group, NULL, &bad);
     259                if (rc == ENOMEM)
     260                        return ENOMEM;
     261
    258262                if (bad > 0)
    259263                        return EIO;
     264
    260265                return EOK;
    261266        }
     
    316321
    317322        size_t bad;
    318         (void)hr_fgroup_wait(group, NULL, &bad);
     323        rc = hr_fgroup_wait(group, NULL, &bad);
     324        if (rc == ENOMEM && type == HR_BD_READ)
     325                return ENOMEM;
     326
    319327        if (bad > 0)
    320328                return EIO;
Note: See TracChangeset for help on using the changeset viewer.