block/qapi: Set s->device in bdrv_query_stats()

This is the only instance of bdrv_query_blk_stats() accessing anything
in the BlockStats structure other than s->stats, so let us move it to
its caller (where it makes just as much sense) allowing us to make
bdrv_query_blk_stats() take a pointer to the BlockDeviceStats instead of
BlockStats.

Signed-off-by: Max Reitz <mreitz@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
diff --git a/block/qapi.c b/block/qapi.c
index 1961cdf..627ef57 100644
--- a/block/qapi.c
+++ b/block/qapi.c
@@ -365,9 +365,6 @@
     BlockAcctStats *stats = blk_get_stats(blk);
     BlockAcctTimedStats *ts = NULL;
 
-    s->has_device = true;
-    s->device = g_strdup(blk_name(blk));
-
     s->stats->rd_bytes = stats->nr_bytes[BLOCK_ACCT_READ];
     s->stats->wr_bytes = stats->nr_bytes[BLOCK_ACCT_WRITE];
     s->stats->rd_operations = stats->nr_ops[BLOCK_ACCT_READ];
@@ -462,6 +459,8 @@
     s->stats = g_malloc0(sizeof(*s->stats));
 
     if (blk) {
+        s->has_device = true;
+        s->device = g_strdup(blk_name(blk));
         bdrv_query_blk_stats(s, blk);
     }
     if (bs) {