Il 19/08/2012 04:17, Fengguang Wu ha scritto:
On Sat, Aug 18, 2012 at 05:49:21AM -0400, Namjae Jeon wrote:
unsigned long bdi_dirty_limit(struct backing_dev_info *bdi, unsigned long dirty)
Above function return type is unsigned long, but return value is
kept in "u64 bdi_dirty".
It can return incorrect value by type casting.
I don't see how the cast can return wrong value.
The u64 is necessary for the intermediate calculations.
Thanks,
Fengguang
We are sure u64 is 8byte long, but unsigned long is 4byte long on 32-bit
machine, so if bdi_dirty can assume values bigger than 2^32 there is an
implicit truncate of its value, isn't it?
Marco
--
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html