I'm withdrawing this patch. Reading the entire function more carefully, I think the rate calculation is completely wrong both in the original code and in this change. That is, the top of __update_writeback_rate calculates a dirty data target for one backing device. However, the target for one backing device is compared to the amount of dirty data in the entire cache. If there is more than one cache device, the writeback rate will be far too high. I will attempt to write a new version of this scaling functionality soon that fixes both the overflow issue and ... corrects it to calculate the correct thing. Mike