summaryrefslogtreecommitdiff
path: root/fs/ceph/super.c
diff options
context:
space:
mode:
authorAlex Elder <elder@inktank.com>2012-10-02 10:25:51 -0500
committerAlex Elder <elder@inktank.com>2012-10-03 10:51:18 -0500
commit6285bc231277419255f3498d3eb5ddc9f8e7fe79 (patch)
treecfed533859b1e07896aea7d199716ef4d2704ad4 /fs/ceph/super.c
parent457712a0bc5389b75d2c93840a684fd77df2aabb (diff)
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>
Diffstat (limited to 'fs/ceph/super.c')
0 files changed, 0 insertions, 0 deletions