summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorStefan Priebe <s.priebe@profihost.ag>2012-11-20 13:44:55 +0100
committerStefan Hajnoczi <stefanha@redhat.com>2012-11-21 09:43:23 +0100
commit08448d5195aeff49bf25fb62b4a6218f079f5284 (patch)
tree29dcd1c0312c85e3728fdeef5cd8e42f7772de3d
parent8ba2aae32c40f544def6be7ae82be9bcb781e01d (diff)
downloadfocaccia-qemu-08448d5195aeff49bf25fb62b4a6218f079f5284.tar.gz
focaccia-qemu-08448d5195aeff49bf25fb62b4a6218f079f5284.zip
use int64_t for return values from rbd instead of int
rbd / rados tends to return pretty often length of writes
or discarded blocks. These values might be bigger than int.

The steps to reproduce are:

  mkfs.xfs -f a whole device bigger than int in bytes. mkfs.xfs sends
  a discard. Important is that you use scsi-hd and set
  discard_granularity=512. Otherwise rbd disabled discard support.

Signed-off-by: Stefan Priebe <s.priebe@profihost.ag>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
-rw-r--r--block/rbd.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/block/rbd.c b/block/rbd.c
index 0aaacaf859..f3becc7a8b 100644
--- a/block/rbd.c
+++ b/block/rbd.c
@@ -69,7 +69,7 @@ typedef enum {
 typedef struct RBDAIOCB {
     BlockDriverAIOCB common;
     QEMUBH *bh;
-    int ret;
+    int64_t ret;
     QEMUIOVector *qiov;
     char *bounce;
     RBDAIOCmd cmd;
@@ -86,7 +86,7 @@ typedef struct RADOSCB {
     int done;
     int64_t size;
     char *buf;
-    int ret;
+    int64_t ret;
 } RADOSCB;
 
 #define RBD_FD_READ 0