Changeset 9d1685b in mainline
- Timestamp:
- 2025-06-17T14:14:09Z (6 months ago)
- Children:
- a3486f2
- Parents:
- b22ea202
- Location:
- uspace/srv/bd/hr
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/srv/bd/hr/fge.c
rb22ea202 r9d1685b 327 327 fibril_mutex_lock(&group->lock); 328 328 group->finished_fail++; 329 if (rc == E NOMEM)330 group->final_errno = E NOMEM;329 if (rc == EAGAIN) 330 group->final_errno = EAGAIN; 331 331 fibril_mutex_unlock(&group->lock); 332 332 } -
uspace/srv/bd/hr/io.c
rb22ea202 r9d1685b 46 46 47 47 static errno_t exec_io_op(hr_io_t *); 48 49 /** Wrapper for block_write_direct(), never returns ENOMEM */ 50 errno_t hr_write_direct(service_id_t service_id, uint64_t ba, size_t cnt, 51 const void *data) 52 { 53 errno_t rc; 54 while ((rc = block_write_direct(service_id, ba, cnt, data)) == ENOMEM) 55 fibril_usleep(MSEC2USEC(250)); /* sleep 250ms */ 56 57 if (rc == EAGAIN) 58 rc = EIO; 59 60 return rc; 61 } 62 63 /** Wrapper for block_read_direct(), never returns ENOMEM */ 64 errno_t hr_read_direct(service_id_t service_id, uint64_t ba, size_t cnt, 65 void *data) 66 { 67 errno_t rc; 68 while ((rc = block_read_direct(service_id, ba, cnt, data)) == ENOMEM) 69 fibril_usleep(MSEC2USEC(250)); /* sleep 250ms */ 70 71 if (rc == EAGAIN) 72 rc = EIO; 73 74 return rc; 75 } 76 77 /** Wrapper for block_sync_cache(), never returns ENOMEM */ 78 errno_t hr_sync_cache(service_id_t service_id, uint64_t ba, size_t cnt) 79 { 80 errno_t rc; 81 while ((rc = block_sync_cache(service_id, ba, cnt)) == ENOMEM) 82 fibril_usleep(MSEC2USEC(250)); /* sleep 250ms */ 83 84 if (rc == EAGAIN) 85 rc = EIO; 86 87 return rc; 88 } 48 89 49 90 errno_t hr_io_worker(void *arg) -
uspace/srv/bd/hr/io.h
rb22ea202 r9d1685b 52 52 errno_t hr_io_worker_basic(void *); 53 53 54 extern errno_t hr_write_direct(service_id_t, uint64_t, size_t, const void *); 55 extern errno_t hr_read_direct(service_id_t, uint64_t, size_t, void *); 56 extern errno_t hr_sync_cache(service_id_t, uint64_t, size_t); 57 54 58 #endif 55 59
Note:
See TracChangeset
for help on using the changeset viewer.
