Re: [PATCH 2/3] writeback: fix incorrect return value type of bdi_dirty_limit

From: Marco Stornelli
Date: Sun Aug 19 2012 - 06:30:03 EST


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-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/