]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
os/bluestore/bluefs_types: make block_mask 64-bit 21740/head
authorSage Weil <sage@redhat.com>
Tue, 24 Apr 2018 22:11:15 +0000 (17:11 -0500)
committerPrashant D <pdhange@redhat.com>
Mon, 30 Apr 2018 12:32:41 +0000 (08:32 -0400)
Since block_size is 32 bits, we return 0x00000000fffff000 (or similar).
This breaks things if you get a file (e.g., bluefs metadata log file)
over 4GB.

Fixes: https://tracker.ceph.com/issues/23840
Signed-off-by: Sage Weil <sage@redhat.com>
(cherry picked from commit 55dd28a9dee08a028c6a8db82a8be77b3af88e44)

src/os/bluestore/bluefs_types.h

index b5bf775cb7b31b44c1d4e07e3419f8fca3e4979a..6aec1a31a8b6dc877b5a6ba15ea4f2a74a674db7 100644 (file)
@@ -127,7 +127,7 @@ struct bluefs_super_t {
       block_size(4096) { }
 
   uint64_t block_mask() const {
-    return ~(block_size - 1);
+    return ~((uint64_t)block_size - 1);
   }
 
   void encode(bufferlist& bl) const;