diff --git a/lib/bdev.py b/lib/bdev.py
index 3901ba78d431bb496a7a12c44d2a4ca71beb4f9e..8d41f53b6ced3bf0f066498c89149209e233e7fa 100644
--- a/lib/bdev.py
+++ b/lib/bdev.py
@@ -813,12 +813,28 @@ class LogicalVolume(BlockDev):
 
     return (self._vg_name, snap_name)
 
+  def _RemoveOldInfo(self):
+    """Try to remove old tags from the lv.
+
+    """
+    result = utils.RunCmd(["lvs", "-o", "tags", "--noheadings", "--nosuffix",
+                           self.dev_path])
+    _CheckResult(result)
+
+    raw_tags = result.stdout.strip()
+    if raw_tags:
+      for tag in raw_tags.split(","):
+        _CheckResult(utils.RunCmd(["lvchange", "--deltag",
+                                   tag.strip(), self.dev_path]))
+
   def SetInfo(self, text):
     """Update metadata with info text.
 
     """
     BlockDev.SetInfo(self, text)
 
+    self._RemoveOldInfo()
+
     # Replace invalid characters
     text = re.sub("^[^A-Za-z0-9_+.]", "_", text)
     text = re.sub("[^-A-Za-z0-9_+.]", "_", text)