Changeset f7169a6 in mainline
- Timestamp:
- 2025-07-08T00:29:28Z (6 months ago)
- Children:
- ba65caf5
- Parents:
- 9323bb8
- Location:
- uspace/srv/bd/hr
- Files:
-
- 3 edited
-
parity_stripe.c (modified) (8 diffs)
-
parity_stripe.h (modified) (1 diff)
-
raid5.c (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
uspace/srv/bd/hr/parity_stripe.c
r9323bb8 rf7169a6 43 43 #include "var.h" 44 44 45 static void execute_stripe_degraded_mixed(hr_stripe_t *, size_t);46 static void execute_stripe_degraded(hr_stripe_t *, size_t);47 static void execute_stripe_optimal_reconstruct(hr_stripe_t *);48 static void execute_stripe_optimal_subtract(hr_stripe_t *);49 static void execute_write_stripe(hr_stripe_t *, size_t);50 static void execute_read_stripe(hr_stripe_t *, size_t);51 static void execute_stripe_degraded_good(hr_stripe_t *, size_t);45 static void hr_execute_write_stripe_degraded_mixed(hr_stripe_t *, size_t); 46 static void hr_execute_write_stripe_degraded(hr_stripe_t *, size_t); 47 static void hr_execute_write_stripe_optimal_reconstruct(hr_stripe_t *); 48 static void hr_execute_write_stripe_optimal_subtract(hr_stripe_t *); 49 static void hr_execute_write_stripe(hr_stripe_t *, size_t); 50 static void hr_execute_read_stripe(hr_stripe_t *, size_t); 51 static void hr_execute_write_stripe_degraded_good(hr_stripe_t *, size_t); 52 52 static bool hr_stripe_range_non_extension(const range_t *, const range_t *, 53 53 range_t *); … … 130 130 } 131 131 132 void execute_stripe(hr_stripe_t *stripe, size_t bad_extent)132 void hr_execute_stripe(hr_stripe_t *stripe, size_t bad_extent) 133 133 { 134 134 if (stripe->write) 135 execute_write_stripe(stripe, bad_extent);135 hr_execute_write_stripe(stripe, bad_extent); 136 136 else 137 execute_read_stripe(stripe, bad_extent);138 } 139 140 void wait_for_stripe(hr_stripe_t *stripe)137 hr_execute_read_stripe(stripe, bad_extent); 138 } 139 140 void hr_wait_for_stripe(hr_stripe_t *stripe) 141 141 { 142 142 stripe->rc = hr_fgroup_wait(stripe->worker_group, NULL, NULL); … … 147 147 } 148 148 149 static void execute_stripe_degraded_good(hr_stripe_t *stripe, size_t bad_extent) 149 static void hr_execute_write_stripe_degraded_good(hr_stripe_t *stripe, 150 size_t bad_extent) 150 151 { 151 152 hr_volume_t *vol = stripe->vol; … … 212 213 } 213 214 214 static void execute_stripe_degraded_mixed(hr_stripe_t *stripe, size_t bad_extent) 215 static void hr_execute_write_stripe_degraded_mixed(hr_stripe_t *stripe, 216 size_t bad_extent) 215 217 { 216 218 hr_volume_t *vol = stripe->vol; … … 383 385 } 384 386 385 static void execute_stripe_degraded(hr_stripe_t *stripe, size_t bad_extent) 387 static void hr_execute_write_stripe_degraded(hr_stripe_t *stripe, 388 size_t bad_extent) 386 389 { 387 390 hr_volume_t *vol = stripe->vol; … … 420 423 421 424 if (stripe->extent_span[bad_extent].cnt > 0) 422 execute_stripe_degraded_mixed(stripe, bad_extent);425 hr_execute_write_stripe_degraded_mixed(stripe, bad_extent); 423 426 else 424 execute_stripe_degraded_good(stripe, bad_extent);425 } 426 427 static void execute_stripe_optimal_reconstruct(hr_stripe_t *stripe)427 hr_execute_write_stripe_degraded_good(stripe, bad_extent); 428 } 429 430 static void hr_execute_write_stripe_optimal_reconstruct(hr_stripe_t *stripe) 428 431 { 429 432 hr_volume_t *vol = stripe->vol; … … 543 546 } 544 547 545 static void execute_stripe_optimal_subtract(hr_stripe_t *stripe)548 static void hr_execute_write_stripe_optimal_subtract(hr_stripe_t *stripe) 546 549 { 547 550 hr_volume_t *vol = stripe->vol; … … 616 619 } 617 620 618 static void execute_write_stripe(hr_stripe_t *stripe, size_t bad_extent)621 static void hr_execute_write_stripe(hr_stripe_t *stripe, size_t bad_extent) 619 622 { 620 623 hr_volume_t *vol = stripe->vol; 621 624 622 625 if (bad_extent < vol->extent_no) { 623 execute_stripe_degraded(stripe, bad_extent);626 hr_execute_write_stripe_degraded(stripe, bad_extent); 624 627 return; 625 628 } 626 629 627 630 if (stripe->subtract) 628 execute_stripe_optimal_subtract(stripe);631 hr_execute_write_stripe_optimal_subtract(stripe); 629 632 else 630 execute_stripe_optimal_reconstruct(stripe);631 } 632 633 static void execute_read_stripe(hr_stripe_t *stripe, size_t bad_extent)633 hr_execute_write_stripe_optimal_reconstruct(stripe); 634 } 635 636 static void hr_execute_read_stripe(hr_stripe_t *stripe, size_t bad_extent) 634 637 { 635 638 hr_volume_t *vol = stripe->vol; -
uspace/srv/bd/hr/parity_stripe.h
r9323bb8 rf7169a6 112 112 extern void hr_stripe_wait_for_parity_commits(hr_stripe_t *); 113 113 extern void hr_stripe_parity_abort(hr_stripe_t *); 114 extern void execute_stripe(hr_stripe_t *, size_t);115 extern void wait_for_stripe(hr_stripe_t *);114 extern void hr_execute_stripe(hr_stripe_t *, size_t); 115 extern void hr_wait_for_stripe(hr_stripe_t *); 116 116 117 117 #endif -
uspace/srv/bd/hr/raid5.c
r9323bb8 rf7169a6 323 323 if (stripes[s].done) 324 324 continue; 325 execute_stripe(&stripes[s], bad_extent);325 hr_execute_stripe(&stripes[s], bad_extent); 326 326 } 327 327 … … 329 329 if (stripes[s].done) 330 330 continue; 331 wait_for_stripe(&stripes[s]);331 hr_wait_for_stripe(&stripes[s]); 332 332 } 333 333 … … 532 532 if (stripes[s].done) 533 533 continue; 534 execute_stripe(&stripes[s], bad_extent);534 hr_execute_stripe(&stripes[s], bad_extent); 535 535 } 536 536 … … 538 538 if (stripes[s].done) 539 539 continue; 540 wait_for_stripe(&stripes[s]);540 hr_wait_for_stripe(&stripes[s]); 541 541 } 542 542
Note:
See TracChangeset
for help on using the changeset viewer.
