quorum: fix segfault when read fails in fifo mode
authorChanglong Xie <xiecl.fnst@cn.fujitsu.com>
Fri, 5 Feb 2016 02:25:22 +0000 (10:25 +0800)
committerKevin Wolf <kwolf@redhat.com>
Mon, 22 Feb 2016 08:49:46 +0000 (09:49 +0100)
Signed-off-by: Wen Congyang <wency@cn.fujitsu.com>
Signed-off-by: Changlong Xie <xiecl.fnst@cn.fujitsu.com>
Reviewed-by: Alberto Garcia <berto@igalia.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
block/quorum.c

index a5ae4b8..11cc60b 100644 (file)
@@ -286,7 +286,8 @@ static void quorum_aio_cb(void *opaque, int ret)
 
     if (acb->is_read && s->read_pattern == QUORUM_READ_PATTERN_FIFO) {
         /* We try to read next child in FIFO order if we fail to read */
-        if (ret < 0 && ++acb->child_iter < s->num_children) {
+        if (ret < 0 && (acb->child_iter + 1) < s->num_children) {
+            acb->child_iter++;
             read_fifo_child(acb);
             return;
         }