summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--rtslib/fabric.py7
-rw-r--r--rtslib/root.py15
2 files changed, 16 insertions, 6 deletions
diff --git a/rtslib/fabric.py b/rtslib/fabric.py
index b5cc4d9..885727e 100644
--- a/rtslib/fabric.py
+++ b/rtslib/fabric.py
@@ -152,8 +152,11 @@ class _BaseFabricModule(CFSNode):
def _check_self(self):
if not self.exists:
- modprobe(self.kernel_module)
- self._create_in_cfs_ine('any')
+ try:
+ self._create_in_cfs_ine('any')
+ except RTSLibError:
+ modprobe(self.kernel_module)
+ self._create_in_cfs_ine('any')
super(_BaseFabricModule, self)._check_self()
def has_feature(self, feature):
diff --git a/rtslib/root.py b/rtslib/root.py
index 083a2c2..b65825f 100644
--- a/rtslib/root.py
+++ b/rtslib/root.py
@@ -62,10 +62,17 @@ class RTSRoot(CFSNode):
base kernel modules (tcm)
'''
super(RTSRoot, self).__init__()
- modprobe('configfs')
- mount_configfs()
- modprobe('target_core_mod')
- self._create_in_cfs_ine('any')
+ try:
+ mount_configfs()
+ except RTSLibError:
+ modprobe('configfs')
+ mount_configfs()
+
+ try:
+ self._create_in_cfs_ine('any')
+ except RTSLibError:
+ modprobe('target_core_mod')
+ self._create_in_cfs_ine('any')
def _list_targets(self):
self._check_self()