Changeset d092d2c in mainline
- Timestamp:
- 2024-11-12T21:06:04Z (6 months ago)
- Children:
- da0570a
- Parents:
- 1a60e645
- Location:
- uspace/srv/bd/hr
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/srv/bd/hr/raid0.c
r1a60e645 rd092d2c 115 115 116 116 static errno_t hr_raid0_bd_op(hr_bd_op_type_t type, bd_srv_t *bd, aoff64_t ba, 117 size_t cnt, void *d ata_read, const void *data_write, size_t size)117 size_t cnt, void *dst, const void *src, size_t size) 118 118 { 119 119 hr_volume_t *vol = bd->srvs->sarg; 120 120 errno_t rc; 121 uint64_t phys_block ;121 uint64_t phys_block, len; 122 122 size_t left; 123 const uint8_t *data_write = src; 124 uint8_t *data_read = dst; 123 125 124 126 /* propagate sync */ … … 155 157 phys_block = ext_stripe * strip_size + strip_off; 156 158 cnt = min(left, strip_size - strip_off); 159 len = vol->bsize * cnt; 157 160 hr_add_ba_offset(vol, &phys_block); 158 161 switch (type) { … … 167 170 rc = block_read_direct(vol->extents[extent].svc_id, 168 171 phys_block, cnt, data_read); 169 data_read = (void *) ((uintptr_t) data_read + 170 (vol->bsize * cnt)); 172 data_read += len; 171 173 break; 172 174 case HR_BD_WRITE: 173 175 rc = block_write_direct(vol->extents[extent].svc_id, 174 176 phys_block, cnt, data_write); 175 data_write = (void *) ((uintptr_t) data_write + 176 (vol->bsize * cnt)); 177 data_write += len; 177 178 break; 178 179 default: -
uspace/srv/bd/hr/raid4.c
r1a60e645 rd092d2c 335 335 336 336 static errno_t hr_raid4_bd_op(hr_bd_op_type_t type, bd_srv_t *bd, aoff64_t ba, 337 size_t cnt, void *d ata_read, const void *data_write, size_t size)337 size_t cnt, void *dst, const void *src, size_t size) 338 338 { 339 339 hr_volume_t *vol = bd->srvs->sarg; 340 340 errno_t rc; 341 uint64_t phys_block ;341 uint64_t phys_block, len; 342 342 size_t left; 343 const uint8_t *data_write = src; 344 uint8_t *data_read = dst; 343 345 344 346 /* propagate sync */ … … 375 377 phys_block = ext_stripe * strip_size + strip_off; 376 378 cnt = min(left, strip_size - strip_off); 379 len = vol->bsize * cnt; 377 380 hr_add_ba_offset(vol, &phys_block); 378 381 switch (type) { … … 396 399 phys_block, cnt, data_read); 397 400 } 398 399 data_read += vol->bsize * cnt; 401 data_read += len; 400 402 break; 401 403 case HR_BD_WRITE: … … 403 405 rc = hr_raid4_write(vol, extent, phys_block, 404 406 data_write, cnt); 405 406 data_write += vol->bsize * cnt; 407 data_write += len; 407 408 break; 408 409 default: … … 427 428 */ 428 429 if (type == HR_BD_WRITE) { 429 data_write -= vol->bsize * cnt;430 data_write -= len; 430 431 goto retry_write; 431 432 } else if (type == HR_BD_WRITE) { 432 data_read -= vol->bsize * cnt;433 data_read -= len; 433 434 goto retry_read; 434 435 }
Note:
See TracChangeset
for help on using the changeset viewer.