From: Sage Weil Date: Fri, 20 Jan 2017 01:51:45 +0000 (-0600) Subject: os/bluestore: fix Allocator::allocate() int truncation X-Git-Tag: v12.0.0~132^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F13010%2Fhead;p=ceph.git os/bluestore: fix Allocator::allocate() int truncation An allocation of size 0x80000000 gets truncated to 0. Larger values can break things in similar ways. Introduced in 5ab034345d7320fbc86a2133c0c29ec1aca4b71a. Fixes: http://tracker.ceph.com/issues/18595 Signed-off-by: Sage Weil --- diff --git a/src/os/bluestore/Allocator.h b/src/os/bluestore/Allocator.h index 63f8e02c5b7b..bdbdca406086 100644 --- a/src/os/bluestore/Allocator.h +++ b/src/os/bluestore/Allocator.h @@ -39,8 +39,8 @@ public: uint64_t max_alloc_size, int64_t hint, AllocExtentVector *extents) = 0; - int allocate(uint64_t want_size, uint64_t alloc_unit, - int64_t hint, AllocExtentVector *extents) { + int64_t allocate(uint64_t want_size, uint64_t alloc_unit, + int64_t hint, AllocExtentVector *extents) { return allocate(want_size, alloc_unit, want_size, hint, extents); }