On Sat, 2011-08-06 at 16:44 +0800, Wu Fengguang wrote: > + pos_bw = bw * pos_ratio >> BANDWIDTH_CALC_SHIFT; > + pos_bw++; /* this avoids bdi->dirty_ratelimit get stuck in 0 */ > + > + pos_ratio *= bdi->avg_write_bandwidth; > + do_div(pos_ratio, dirty_bw | 1); > + ref_bw = bw * pos_ratio >> BANDWIDTH_CALC_SHIFT; when written out that results in: bw * pos_ratio * bdi->avg_write_bandwidth ref_bw = ----------------------------------------- dirty_bw which would suggest you write it like: ref_bw = div_u64((u64)pos_bw * bdi->avg_write_bandwidth, dirty_bw | 1); since pos_bw is already bw * pos_ratio per the above. Or am I missing something? -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/ Don't email: <a href