Alex Elder 6285bc2312 ceph: avoid 32-bit page index overflow
A pgoff_t is defined (by default) to have type (unsigned long).  On
architectures such as i686 that's a 32-bit type.  The ceph address
space code was attempting to produce 64 bit offsets by shifting a
page's index by PAGE_CACHE_SHIFT, but the result was not what was
desired because the shift occurred before the result got promoted
to 64 bits.

Fix this by converting all uses of page->index used in this way to
use the page_offset() macro, which ensures the 64-bit result has the
intended value.

This fixes http://tracker.newdream.net/issues/3112

Reported-by:  Mohamed Pakkeer <pakkeer.mohideen@realimage.com>
Signed-off-by: Alex Elder <elder@inktank.com>
Reviewed-by: Sage Weil <sage@inktank.com>
2012-10-03 10:51:18 -05:00
..
2012-10-03 10:51:18 -05:00
2012-10-01 14:30:54 -05:00
2012-08-02 09:11:19 -07:00
2012-05-29 23:28:33 -04:00
2012-05-16 14:28:27 -05:00
2011-06-07 21:36:45 -07:00
2011-01-12 15:15:13 -08:00
2012-08-02 09:11:19 -07:00
2012-07-30 18:15:35 -07:00