[NEW PATCH] BZ#704131 - Mutiple set rw on block. (via gerrit-bot)

Eduardo Warszawski ewarszaw at redhat.com
Tue Aug 2 12:51:43 UTC 2011


New patch submitted by Eduardo Warszawski (ewarszaw at redhat.com)

You can review this change at: http://gerrit.usersys.redhat.com/763

commit 024291927b46aecad7c3124291bdfd14a589fb17
Author: Eduardo Warszawski <ewarszaw at redhat.com>
Date:   Wed Jul 27 16:54:18 2011 +0300

    BZ#704131 - Mutiple set rw on block.
    
    Change-Id: Ie98bda6d327f0a7c2f29636830e4f9cfde27c29e

diff --git a/vdsm/storage/lvm.py b/vdsm/storage/lvm.py
index 9c62c00..96873e2 100644
--- a/vdsm/storage/lvm.py
+++ b/vdsm/storage/lvm.py
@@ -1150,19 +1150,21 @@ def listPVNames(vgName):
     return [pv.name for pv in pvs if pv.vg_name == vgName]
 
 
-def setrwLV(vg, lv, rw=True):
+def setrwLV(vgName, lvNames, rw=True):
     permission = {False:'r', True:'rw'}[rw]
     try:
-        _changelv(vg, lv, "--permission", permission)
+        _changelv(vgName, lvNames, "--permission", permission)
     except se.StorageException:
-        l = getLV(vg, lv)
-        if l.writeable == rw:
+        reloaded = _lvminfo._reloadlvs(vgName).values()
+        failed = []
+        for lv in reloaded:
+            if lv.writeable != rw:
+                failed.append(lv.name)
             # Ignore the error since lv is now rw, hoping that the error was
             # because lv was already rw, see BZ#654691. We may hide here another
             # lvchange error.
-            return
-
-        raise se.CannotSetRWLogicalVolume(vg, lv, permission)
+        if failed:
+            raise se.CannotSetRWLogicalVolume(vgName, " ".join(failed), permission)
 
 
 def lvsByTag(vg, tag):




More information about the vdsm-patches mailing list