Initialize min_ratio if it is set during bdi unregistration. This can prevent problems that may occur a when bdi is removed without resetting min_ratio. For example. 1) insert external sdcard 2) set external sdcard's min_ratio 70 3) remove external sdcard without setting min_ratio 0 4) insert external sdcard 5) set external sdcard's min_ratio 70 << error occur(can't set) Because when an sdcard is removed, the present bdi_min_ratio value will remain. Currently, the only way to reset bdi_min_ratio is to reboot. [akpm@linux-foundation.org: tweak comment and coding style]
Unified · Split
| @@ -945,6 +945,13 @@ void bdi_unregister(struct backing_dev_info *bdi) · 944 unmodified lines | ||
| 945 | 945 | wb_shutdown(&bdi->wb); |
| 946 | 946 | cgwb_bdi_unregister(bdi); |
| 947 | 947 | |
| 948 | + /* | |
| 949 | + * If this BDI's min ratio has been set, use bdi_set_min_ratio() to | |
| 950 | + * update the global bdi_min_ratio. | |
| 951 | + */ | |
| 952 | + if (bdi->min_ratio) | |
| 953 | + bdi_set_min_ratio(bdi, 0); | |
| 954 | + | |
| 948 | 955 | if (bdi->dev) { |
| 949 | 956 | bdi_debug_unregister(bdi); |
| 950 | 957 | device_unregister(bdi->dev); |