]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
client: use 64-bit value in sync read eof logic
authorSage Weil <sage@inktank.com>
Mon, 3 Feb 2014 16:54:14 +0000 (08:54 -0800)
committerSage Weil <sage@inktank.com>
Mon, 3 Feb 2014 16:54:14 +0000 (08:54 -0800)
The file size can jump to a value that is very much larger than our current
position (for example, it could be a disk image file that gets a sparse
write at a large offset).  Use a 64-bit value so that 'some' doesn't
overflow.

Signed-off-by: Sage Weil <sage@inktank.com>
Reviewed-by: John Spray <john.spray@inktank.com>
src/client/Client.cc

index db050b94d8958bba06f8172f248e6ede009b1b20..236814719fe49ae8880d30a8742e7c9e24c57a2d 100644 (file)
@@ -5971,7 +5971,7 @@ int Client::_read_sync(Fh *f, uint64_t off, uint64_t len, bufferlist *bl)
     if (r >= 0 && r < wanted) {
       if (pos < in->size) {
        // zero up to known EOF
-       int some = in->size - pos;
+       int64_t some = in->size - pos;
        if (some > left)
          some = left;
        bufferptr z(some);