* bdirtysub: * * Decrement the numdirtybuffers count by one and wakeup any * threads blocked in bwillwrite(). */
| 570 | * threads blocked in bwillwrite(). |
| 571 | */ |
| 572 | static void |
| 573 | bdirtysub(struct buf *bp) |
| 574 | { |
| 575 | struct bufdomain *bd; |
| 576 | int num; |
| 577 | |
| 578 | bd = bufdomain(bp); |
| 579 | num = atomic_fetchadd_int(&bd->bd_numdirtybuffers, -1); |
| 580 | if (num == (bd->bd_lodirtybuffers + bd->bd_hidirtybuffers) / 2) |
| 581 | bdirtywakeup(); |
| 582 | if (num == bd->bd_lodirtybuffers || num == bd->bd_hidirtybuffers) |
| 583 | bd_clear(bd); |
| 584 | } |
| 585 | |
| 586 | /* |
| 587 | * bdirtyadd: |
no test coverage detected