moby--moby/daemon
Vivek Goyal 289145ecc6 devmapper: Get rid of metaData.devicesLock
Right now we seem to have 3 locks. 

- devinfo.lock
  This is a per device lock

- metaData.devicesLock

  This is supposedely protecting map of devices.

- Global DeviceSet lock

  This is protecting map of devices as well as serializing calls to libdevmapper.

Semantics of per devices lock and global deviceset lock seem to be very clear.
Even ordering between these two locks has been defined properly.

What is not clear is the need and ordering of metaData.devicesLock. Looks like
this lock is not necessary and global DeviceSet lock should be used to
protect map of devices as it is part of DeviceSet.

This patchset gets rid of metaData.devicesLock and instead uses DeviceSet
lock to protect map of devices.

Also at couple of places during initialization takes devices.Lock(). That
is not strictly necessary as there is supposed to be one thread of execution
during initializaiton. Still it makes the code clearer.

I think this makes code more clear and easier to understand and easier to
make further changes.

Signed-off-by: Vivek Goyal <vgoyal@redhat.com>
2015-10-01 13:02:55 -04:00
..
events Revert "Merge pull request #16228 from duglin/ContextualizeEvents" 2015-09-29 14:26:51 -04:00
execdriver Revert "Merge pull request #16228 from duglin/ContextualizeEvents" 2015-09-29 14:26:51 -04:00
graphdriver devmapper: Get rid of metaData.devicesLock 2015-10-01 13:02:55 -04:00
links
logger daemon: logger: error out on daemon start if invalid logger address 2015-09-20 16:20:25 +02:00
network Docker changes for libnetwork Sandbox 2015-09-02 17:24:56 -07:00
README.md Docs: remove networkdriver from README.md in daemon 2015-08-22 10:09:07 +08:00
archive.go Revert "Merge pull request #16228 from duglin/ContextualizeEvents" 2015-09-29 14:26:51 -04:00
archive_unix.go
archive_windows.go
attach.go Revert "Merge pull request #16228 from duglin/ContextualizeEvents" 2015-09-29 14:26:51 -04:00
changes.go Revert "Merge pull request #16228 from duglin/ContextualizeEvents" 2015-09-29 14:26:51 -04:00
commit.go Revert "Merge pull request #16228 from duglin/ContextualizeEvents" 2015-09-29 14:26:51 -04:00
config.go Add builtin nodes discovery 2015-09-25 14:52:09 -07:00
config_experimental.go Add builtin nodes discovery 2015-09-25 14:52:09 -07:00
config_stub.go
config_unix.go Revert "Make daemon to start with no userlandproxy by default" 2015-09-16 09:56:38 -07:00
config_windows.go Change all docker -d to docker daemon 2015-08-10 20:48:08 +08:00
container.go Revert "Merge pull request #16228 from duglin/ContextualizeEvents" 2015-09-29 14:26:51 -04:00
container_unit_test.go Add `STOPSIGNAL` instruction to dockerfiles. 2015-09-10 19:56:05 -04:00
container_unix.go Revert "Merge pull request #16228 from duglin/ContextualizeEvents" 2015-09-29 14:26:51 -04:00
container_windows.go Revert "Merge pull request #16228 from duglin/ContextualizeEvents" 2015-09-29 14:26:51 -04:00
create.go Revert "Merge pull request #16228 from duglin/ContextualizeEvents" 2015-09-29 14:26:51 -04:00
create_unix.go Do not parse config.Volumes for named volumes 2015-09-29 10:01:57 -04:00
create_windows.go Move VolumeDriver to HostConfig to make containers portable. 2015-09-04 12:42:44 -04:00
daemon.go Separate API router from server. 2015-09-29 19:43:03 -04:00
daemon_aufs.go
daemon_btrfs.go golint fixes for daemon/ package 2015-08-27 22:07:42 -07:00
daemon_devicemapper.go golint fixes for daemon/ package 2015-08-27 22:07:42 -07:00
daemon_linux.go Improvements to the original sharing implementation. 2015-09-23 12:07:24 -04:00
daemon_linux_test.go Improvements to the original sharing implementation. 2015-09-23 12:07:24 -04:00
daemon_no_aufs.go
daemon_overlay.go golint fixes for daemon/ package 2015-08-27 22:07:42 -07:00
daemon_test.go Revert "Merge pull request #16228 from duglin/ContextualizeEvents" 2015-09-29 14:26:51 -04:00
daemon_unix.go Separate API router from server. 2015-09-29 19:43:03 -04:00
daemon_unix_test.go
daemon_unsupported.go Add platformSupported flag to enable daemon mode by platform. 2015-08-07 09:45:24 -07:00
daemon_windows.go Merge pull request #16562 from Microsoft/10662-fixhttppull 2015-09-30 11:46:57 +02:00
daemon_zfs.go golint fixes for daemon/ package 2015-08-27 22:07:42 -07:00
debugtrap_unix.go
debugtrap_unsupported.go
debugtrap_windows.go
delete.go Revert "Merge pull request #16228 from duglin/ContextualizeEvents" 2015-09-29 14:26:51 -04:00
discovery.go Add builtin nodes discovery 2015-09-25 14:52:09 -07:00
exec.go Revert "Merge pull request #16228 from duglin/ContextualizeEvents" 2015-09-29 14:26:51 -04:00
exec_freebsd.go
exec_linux.go
exec_windows.go
export.go Revert "Merge pull request #16228 from duglin/ContextualizeEvents" 2015-09-29 14:26:51 -04:00
history.go golint fixes for daemon/ package 2015-08-27 22:07:42 -07:00
image_delete.go Revert "Merge pull request #16228 from duglin/ContextualizeEvents" 2015-09-29 14:26:51 -04:00
info.go Revert "Merge pull request #16228 from duglin/ContextualizeEvents" 2015-09-29 14:26:51 -04:00
inspect.go Extract api types to version packages. 2015-09-30 14:14:27 -04:00
inspect_unix.go Extract api types to version packages. 2015-09-30 14:14:27 -04:00
inspect_windows.go Revert "Merge pull request #16228 from duglin/ContextualizeEvents" 2015-09-29 14:26:51 -04:00
kill.go Revert "Merge pull request #16228 from duglin/ContextualizeEvents" 2015-09-29 14:26:51 -04:00
list.go Revert "Merge pull request #16228 from duglin/ContextualizeEvents" 2015-09-29 14:26:51 -04:00
logdrivers_linux.go Add awslogs driver for Amazon CloudWatch Logs 2015-09-09 13:52:40 -07:00
logdrivers_windows.go Add awslogs driver for Amazon CloudWatch Logs 2015-09-09 13:52:40 -07:00
logs.go Revert "Merge pull request #16228 from duglin/ContextualizeEvents" 2015-09-29 14:26:51 -04:00
monitor.go Revert "Merge pull request #16228 from duglin/ContextualizeEvents" 2015-09-29 14:26:51 -04:00
pause.go Revert "Merge pull request #16228 from duglin/ContextualizeEvents" 2015-09-29 14:26:51 -04:00
rename.go Revert "Merge pull request #16228 from duglin/ContextualizeEvents" 2015-09-29 14:26:51 -04:00
resize.go Revert "Merge pull request #16228 from duglin/ContextualizeEvents" 2015-09-29 14:26:51 -04:00
restart.go Revert "Merge pull request #16228 from duglin/ContextualizeEvents" 2015-09-29 14:26:51 -04:00
start.go Revert "Merge pull request #16228 from duglin/ContextualizeEvents" 2015-09-29 14:26:51 -04:00
state.go Move setRunningLocking to test code 2015-09-28 13:48:12 -07:00
state_test.go Move setRunningLocking to test code 2015-09-28 13:48:12 -07:00
stats.go Extract api types to version packages. 2015-09-30 14:14:27 -04:00
stats_collector_unix.go Move api/errors/ to errors/ 2015-09-17 11:54:14 -07:00
stats_collector_windows.go
stats_freebsd.go Refactor the statistics of network in docker stats 2015-09-15 15:40:34 +08:00
stats_linux.go Refactor the statistics of network in docker stats 2015-09-15 15:40:34 +08:00
stats_windows.go Refactor the statistics of network in docker stats 2015-09-15 15:40:34 +08:00
stop.go Revert "Merge pull request #16228 from duglin/ContextualizeEvents" 2015-09-29 14:26:51 -04:00
top_unix.go Revert "Merge pull request #16228 from duglin/ContextualizeEvents" 2015-09-29 14:26:51 -04:00
top_windows.go Revert "Merge pull request #16228 from duglin/ContextualizeEvents" 2015-09-29 14:26:51 -04:00
unpause.go Revert "Merge pull request #16228 from duglin/ContextualizeEvents" 2015-09-29 14:26:51 -04:00
utils_freebsd.go
utils_linux.go
utils_nounix.go
utils_test.go
volumes.go Move volume ref counting store to a package. 2015-09-21 12:46:49 -04:00
volumes_linux_unit_test.go Move volume ref counting store to a package. 2015-09-21 12:46:49 -04:00
volumes_unit_test.go Merge pull request #15846 from ZJU-SEL/11646-fix-path-validations 2015-09-03 20:42:37 -04:00
volumes_unix.go Revert "Merge pull request #16228 from duglin/ContextualizeEvents" 2015-09-29 14:26:51 -04:00
volumes_windows.go Revert "Merge pull request #16228 from duglin/ContextualizeEvents" 2015-09-29 14:26:51 -04:00
wait.go Revert "Merge pull request #16228 from duglin/ContextualizeEvents" 2015-09-29 14:26:51 -04:00

README.md

This directory contains code pertaining to running containers and storing images

Code pertaining to running containers:

  • execdriver

Code pertaining to storing images:

  • graphdriver