Browse Source

devmapper: Move maxDeviceID check in loadMetadata

maxDeviceID is upper limit on device Id thin pool can support. Right now
we have this check only during startup. It is a good idea to move this
check in loadMetadata so that any time a device file is loaded and if it
is corrupted and device Id is more than maxDevieceID, it will be detected
right then and there.

Signed-off-by: Vivek Goyal <vgoyal@redhat.com>
Vivek Goyal 9 years ago
parent
commit
94caae2477
1 changed files with 5 additions and 5 deletions
  1. 5 5
      daemon/graphdriver/devmapper/deviceset.go

+ 5 - 5
daemon/graphdriver/devmapper/deviceset.go

@@ -405,11 +405,6 @@ func (devices *DeviceSet) deviceFileWalkFunction(path string, finfo os.FileInfo)
 		return fmt.Errorf("Error loading device metadata file %s", hash)
 	}
 
-	if dinfo.DeviceID > maxDeviceID {
-		logrus.Errorf("Ignoring Invalid DeviceID=%d", dinfo.DeviceID)
-		return nil
-	}
-
 	devices.Lock()
 	devices.markDeviceIDUsed(dinfo.DeviceID)
 	devices.Unlock()
@@ -715,6 +710,11 @@ func (devices *DeviceSet) loadMetadata(hash string) *devInfo {
 		return nil
 	}
 
+	if info.DeviceID > maxDeviceID {
+		logrus.Errorf("Ignoring Invalid DeviceId=%d", info.DeviceID)
+		return nil
+	}
+
 	return info
 }