Skip to contentSkip to conversation

Display sector count in 'info block' output

PATCH In review Daniel P. Berrange 2 participants 3 messages Sep 2, 2011

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 Display sector count in 'info block' output

From: "Daniel P. Berrange" <[email protected]>

To aid in knowing whether a 'block_resize' was succesful, display the sector count in the 'info block' output

---
 block.c         |    6 ++++--
 qmp-commands.hx |    1 +
 2 files changed, 5 insertions(+), 2 deletions(-)
block.c +4 -2
index 03a21d8..fdb0665 100644
@@ -1844,6 +1844,7 @@ static void bdrv_print_dict(QObject *obj, void *opaque)
 
         monitor_printf(mon, " file=");
         monitor_print_filename(mon, qdict_get_str(qdict, "file"));
+        monitor_printf(mon, " sectors=%" PRId64, qdict_get_int(qdict, "sectors"));
         if (qdict_haskey(qdict, "backing_file")) {
             monitor_printf(mon, " backing_file=");
             monitor_print_filename(mon, qdict_get_str(qdict, "backing_file"));
@@ -1884,10 +1885,11 @@ void bdrv_info(Monitor *mon, QObject **ret_data)
             QDict *bs_dict = qobject_to_qdict(bs_obj);
 
             obj = qobject_from_jsonf("{ 'file': %s, 'ro': %i, 'drv': %s, "
-                                     "'encrypted': %i }",
+                                     "'encrypted': %i, 'sectors': %" PRId64 " }",
                                      bs->filename, bs->read_only,
                                      bs->drv->format_name,
-                                     bdrv_is_encrypted(bs));
+                                     bdrv_is_encrypted(bs),
+                                     bs->total_sectors);
             if (bs->backing_file[0] != '\0') {
                 QDict *qdict = qobject_to_qdict(obj);
                 qdict_put(qdict, "backing_file",
qmp-commands.hx +1 -0
index 27cc66e..07a20ff 100644
@@ -1134,6 +1134,7 @@ Each json-object contain the following:
 - "inserted": only present if the device is inserted, it is a json-object
    containing the following:
          - "file": device file name (json-string)
+         - "sectors": total sector count (json-int)
          - "ro": true if read-only, false otherwise (json-bool)
          - "drv": driver format name (json-string)
              - Possible values: "blkdebug", "bochs", "cloop", "cow", "dmg",
Signature · 1 line
1.7.6
#1 lore raw
Quoted 10 lines · Daniel P. Berrange

From: "Daniel P. Berrange" <[email protected]>

To aid in knowing whether a 'block_resize' was succesful, display the sector count in the 'info block' output

---
 block.c         |    6 ++++--
 qmp-commands.hx |    1 +

 2 files changed, 5 insertions(+), 2 deletions(-)

Please use bdrv_getlength(). That way units are in bytes, not "sectors" (could be confusing, e.g. on 4 KB devices). Also for "growable" block devices we actually query instead of reading the cached total_sectors field.

Stefan

#2 lore raw
Quoted 12 lines · Stefan Hajnoczi
Quoted 10 lines · Daniel P. Berrange

From: "Daniel P. Berrange" <[email protected]>

To aid in knowing whether a 'block_resize' was succesful, display the sector count in the 'info block' output

---
 block.c         |    6 ++++--
 qmp-commands.hx |    1 +

 2 files changed, 5 insertions(+), 2 deletions(-)
Quoted 4 lines

Please use bdrv_getlength(). That way units are in bytes, not "sectors" (could be confusing, e.g. on 4 KB devices). Also for "growable" block devices we actually query instead of reading the cached total_sectors field.

Good points, I've sent a v2 using bytes instead of sectors.

Regards,
Daniel

Signature · 4 lines
|: http://berrange.com      -o-    http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org              -o-             http://virt-manager.org :|
|: http://autobuild.org       -o-         http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org       -o-       http://live.gnome.org/gtk-vnc :|