mirror of
https://github.com/containers/podman.git
synced 2025-08-02 09:12:36 +08:00
Remove the runtime lock
This primarily served to protect us against shutting down the Libpod runtime while operations (like creating a container) were happening. However, it was very inconsistently implemented (a lot of our longer-lived functions, like pulling images, just didn't implement it at all...) and I'm not sure how much we really care about this very-specific error case? Removing it also removes a lot of potential deadlocks, which is nice. [NO NEW TESTS NEEDED] Signed-off-by: Matthew Heon <mheon@redhat.com>
This commit is contained in:
@ -21,9 +21,6 @@ type StorageContainer struct {
|
||||
|
||||
// ListStorageContainers lists all containers visible to c/storage.
|
||||
func (r *Runtime) ListStorageContainers() ([]*StorageContainer, error) {
|
||||
r.lock.RLock()
|
||||
defer r.lock.RUnlock()
|
||||
|
||||
finalCtrs := []*StorageContainer{}
|
||||
|
||||
ctrs, err := r.store.Containers()
|
||||
@ -61,15 +58,6 @@ func (r *Runtime) StorageContainer(idOrName string) (*storage.Container, error)
|
||||
// Accepts ID or full name of container.
|
||||
// If force is set, the container will be unmounted first to ensure removal.
|
||||
func (r *Runtime) RemoveStorageContainer(idOrName string, force bool) error {
|
||||
r.lock.Lock()
|
||||
defer r.lock.Unlock()
|
||||
|
||||
return r.removeStorageContainer(idOrName, force)
|
||||
}
|
||||
|
||||
// Internal function to remove the container storage without
|
||||
// locking the runtime.
|
||||
func (r *Runtime) removeStorageContainer(idOrName string, force bool) error {
|
||||
targetID, err := r.store.Lookup(idOrName)
|
||||
if err != nil {
|
||||
if errors.Cause(err) == storage.ErrLayerUnknown {
|
||||
|
Reference in New Issue
Block a user