Blob Blame History Raw
From 560ee483a9ff0fbaa130e70573c7f27ba7a413ad Mon Sep 17 00:00:00 2001
From: Maurizio Lombardi <mlombard@redhat.com>
Date: Fri, 19 Oct 2018 10:52:01 +0200
Subject: [PATCH] report the correct size for partitions

If you use a partition instead of the whole device as the backstore device,
rtslib will always report its size as 0 bytes.

This happens because rtslib tries to read the "queue/logical_block_size"
attribute, which can only be found in the parent's node.
This patch fixes the bug by loading the parent node's attributes if
it detects that the device is a partition.

Signed-off-by: Maurizio Lombardi <mlombard@redhat.com>
---
 rtslib/utils.py | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/rtslib/utils.py b/rtslib/utils.py
index b4e68fb..eff2205 100644
--- a/rtslib/utils.py
+++ b/rtslib/utils.py
@@ -134,6 +134,9 @@ def _get_size_for_dev(device):
     except (KeyError, UnicodeDecodeError, ValueError):
         return 0
 
+    if device['DEVTYPE'] == 'partition':
+        attributes = device.parent.attributes
+
     try:
         logical_block_size = attributes.asint('queue/logical_block_size')
     except (KeyError, UnicodeDecodeError, ValueError):
-- 
1.8.3.1