This introduces bdi_set_max_ratio_no_scale(). It uses the max granularity for the ratio. This function by the new sysfs knob max_ratio_fine.
Unified · Split
| @@ -109,6 +109,7 @@ u64 bdi_get_min_bytes(struct backing_dev_info *bdi); · 108 unmodified lines | ||
| 109 | 109 | u64 bdi_get_max_bytes(struct backing_dev_info *bdi); |
| 110 | 110 | int bdi_set_min_ratio(struct backing_dev_info *bdi, unsigned int min_ratio); |
| 111 | 111 | int bdi_set_max_ratio(struct backing_dev_info *bdi, unsigned int max_ratio); |
| 112 | +int bdi_set_max_ratio_no_scale(struct backing_dev_info *bdi, unsigned int max_ratio); | |
| 112 | 113 | int bdi_set_min_bytes(struct backing_dev_info *bdi, u64 min_bytes); |
| 113 | 114 | int bdi_set_max_bytes(struct backing_dev_info *bdi, u64 max_bytes); |
| 114 | 115 | int bdi_set_strict_limit(struct backing_dev_info *bdi, unsigned int strict_limit); |
| @@ -719,6 +719,9 @@ static int __bdi_set_max_ratio(struct backing_dev_info *bdi, unsigned int max_ra · 718 unmodified lines | ||
| 719 | 719 | { |
| 720 | 720 | int ret = 0; |
| 721 | 721 | |
| 722 | + if (max_ratio > 100 * BDI_RATIO_SCALE) | |
| 723 | + return -EINVAL; | |
| 724 | + | |
| 722 | 725 | spin_lock_bh(&bdi_lock); |
| 723 | 726 | if (bdi->min_ratio > max_ratio) { |
| 724 | 727 | ret = -EINVAL; |
| @@ -731,6 +734,11 @@ static int __bdi_set_max_ratio(struct backing_dev_info *bdi, unsigned int max_ra · 6 unmodified lines | ||
| 731 | 734 | return ret; |
| 732 | 735 | } |
| 733 | 736 | |
| 737 | +int bdi_set_max_ratio_no_scale(struct backing_dev_info *bdi, unsigned int max_ratio) | |
| 738 | +{ | |
| 739 | + return __bdi_set_max_ratio(bdi, max_ratio); | |
| 740 | +} | |
| 741 | + | |
| 734 | 742 | int bdi_set_min_ratio(struct backing_dev_info *bdi, unsigned int min_ratio) |
| 735 | 743 | { |
| 736 | 744 | return __bdi_set_min_ratio(bdi, min_ratio * BDI_RATIO_SCALE); |
| @@ -738,9 +746,6 @@ int bdi_set_min_ratio(struct backing_dev_info *bdi, unsigned int min_ratio) · 1 unmodified line | ||
| 738 | 746 | |
| 739 | 747 | int bdi_set_max_ratio(struct backing_dev_info *bdi, unsigned int max_ratio) |
| 740 | 748 | { |
| 741 | − if (max_ratio > 100) | |
| 742 | − return -EINVAL; | |
| 743 | − | |
| 744 | 749 | return __bdi_set_max_ratio(bdi, max_ratio * BDI_RATIO_SCALE); |
| 745 | 750 | } |
| 746 | 751 | EXPORT_SYMBOL(bdi_set_max_ratio); |