]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
os/bluestore/bluefs_types: make block_mask 64-bit 21629/head
authorSage Weil <sage@redhat.com>
Tue, 24 Apr 2018 22:11:15 +0000 (17:11 -0500)
committerSage Weil <sage@redhat.com>
Tue, 24 Apr 2018 22:11:15 +0000 (17:11 -0500)
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>
src/os/bluestore/bluefs_types.h

index 4634be503852c2d83a6264573624779f9cc92b33..99c59c84285f0c42a109f304d1edf325199f9cd3 100644 (file)
@@ -128,7 +128,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;