diff --git a/rtslib/tcm.py b/rtslib/tcm.py
index bf681fe..cb52386 100644
--- a/rtslib/tcm.py
+++ b/rtslib/tcm.py
@@ -785,7 +785,8 @@ class UserBackedStorageObject(StorageObject):
An interface to configFS storage objects for userspace-backed backstore.
'''
- def __init__(self, name, config=None, size=None, wwn=None):
+ def __init__(self, name, config=None, size=None, wwn=None,
+ hw_max_sectors=None):
'''
@param name: The name of the UserBackedStorageObject.
@type name: string
@@ -796,6 +797,8 @@ class UserBackedStorageObject(StorageObject):
@type size: int
@param wwn: T10 WWN Unit Serial, will generate if None
@type wwn: string
+ @hw_max_sectors: Max sectors per command limit to export to initiators.
+ @type hw_max_sectors: int
@return: A UserBackedStorageObject object.
'''
@@ -808,20 +811,22 @@ class UserBackedStorageObject(StorageObject):
"from its configuration string")
super(UserBackedStorageObject, self).__init__(name, 'create')
try:
- self._configure(config, size, wwn)
+ self._configure(config, size, wwn, hw_max_sectors)
except:
self.delete()
raise
else:
super(UserBackedStorageObject, self).__init__(name, 'lookup')
- def _configure(self, config, size, wwn):
+ def _configure(self, config, size, wwn, hw_max_sectors):
self._check_self()
if ':' in config:
raise RTSLibError("':' not allowed in config string")
self._control("dev_config=%s" % config)
self._control("dev_size=%d" % size)
+ if hw_max_sectors is not None:
+ self._control("hw_max_sectors=%s" % hw_max_sectors)
self._enable()
super(UserBackedStorageObject, self)._configure(wwn)
@@ -830,6 +835,10 @@ class UserBackedStorageObject(StorageObject):
self._check_self()
return int(self._parse_info('Size'))
+ def _get_hw_max_sectors(self):
+ self._check_self()
+ return int(self._parse_info('HwMaxSectors'))
+
def _get_config(self):
self._check_self()
val = self._parse_info('Config')
@@ -841,6 +850,8 @@ class UserBackedStorageObject(StorageObject):
self._check_self()
return storage_object_get_alua_support_attr(self)
+ hw_max_sectors = property(_get_hw_max_sectors,
+ doc="Get the max sectors per command.")
size = property(_get_size,
doc="Get the size in bytes.")
config = property(_get_config,
@@ -853,6 +864,8 @@ class UserBackedStorageObject(StorageObject):
d['wwn'] = self.wwn
d['size'] = self.size
d['config'] = self.config
+ d['hw_max_sectors'] = self.hw_max_sectors
+
return d