DeviceMapper: Succeed immediately when removing non-existant devices

We've seen situations where removal of "ID-init" failed during
container deletion (EBUSY), after removal of "ID" has succeeded. This
caused the container delete operation to fail, and on the next delete
attempt the removal of "ID" failed immediately with "does not exist".

Ideally we should not fail the ID-init removal, but its also non-ideal
to allow a state where the container is half-removed and we cannot
make progress deleting the container. So, we silently ignore not-exist
errors on device removal.

Docker-DCO-1.1-Signed-off-by: Alexander Larsson <alexl@redhat.com> (github: alexlarsson)
devmapper: Add per-device lock

We currently use a global lock to protect global data (like the
Devices map) as well as device data itself and access to
(non-threadsafe) libdevmapper.

This commit also adds a per-device lock, which will allow per-device
operations to temporarily release the global lock while e.g. waiting.
The per-device lock will make sure that nothing else accesses that
device while we're operating on it.

Docker-DCO-1.1-Signed-off-by: Alexander Larsson <alexl@redhat.com> (github: alexlarsson)
devmapper: Increase sleep times and unlock while sleeping

We've seen some cases in the wild where waiting for unmount/deactivate
of devmapper devices taking a long time (several seconds). So, we increase
the sleeps to 10 seconds before we timeout. For instance:

https://github.com/dotcloud/docker/issues/4389

But, in order to not keep other processes blocked we unlock the global
dm lock while waiting to allow other devices to continue working.

Docker-DCO-1.1-Signed-off-by: Alexander Larsson <alexl@redhat.com> (github: alexlarsson)
Note within the RELEASE-CHECKLIST that "origin" is assumed to be upstream

Docker-DCO-1.1-Signed-off-by: Andrew Page <admwiggin@gmail.com> (github: tianon)
spelling correction

s/singal/signal/

Docker-DCO-1.1-Signed-off-by: Dolph Mathews <dolph.mathews@gmail.com> (github: dolph)
Update email + add self to pkg/signal

Docker-DCO-1.1-Signed-off-by: Guillaume J. Charmes <guillaume@charmes.net> (github: creack)
Move execdriver construction into execdriver/execdrivers

This can't be in execdriver (dependency loop) but should not be
hardcoded inside runtime.go either. So we put it in a subpackage.

Docker-DCO-1.1-Signed-off-by: Alexander Larsson <alexl@redhat.com> (github: alexlarsson)
Merge pull request #4569 from dolph/master

spelling correction
Merge pull request #4499 from alexlarsson/fix-remove-fail

DeviceMapper: Succeed immediately when removing non-existant devices
Add deprecation warning for -t on pull

Closes #3410
Docker-DCO-1.1-Signed-off-by: Michael Crosby <michael@crosbymichael.com> (github: crosbymichael)
Merge pull request #4466 from alexlarsson/execdrivers

Move execdriver construction into execdriver/execdrivers
Merge pull request #4589 from creack/update_maintainer

Update MAINTAINER email + add self to pkg/signal MAINTAINER
Merge pull request #4491 from crosbymichael/add-pull-dep

Add deprecation warning for -t on pull
Remove goroutine leak upon error

Docker-DCO-1.1-Signed-off-by: Guillaume J. Charmes <guillaume@charmes.net> (github: creack)
Update parseLxcInfo to comply with new lxc1.0 format

Docker-DCO-1.1-Signed-off-by: Guillaume J. Charmes <guillaume@charmes.net> (github: creack)
Merge pull request #4504 from alexlarsson/devicemapper-waits

devmapper: Increase sleep times and unlock while sleeping
Merge pull request #4521 from tianon/release-checklist-origin

Note within the RELEASE-CHECKLIST that "origin" is assumed to be upstream
Merge pull request #4598 from creack/fix_lxc

Fix lxc
Beam: a simple stream-oriented communication protocol for distributed systems.

This patch includes a stripped down implementation with a bare minimum
unix socket transport. It relies on fd passing for stream multiplexing.

The purpose of this first patch is to allow implementation of dynamic
linking, which will allow advanced service discovery.

Docker-DCO-1.1-Signed-off-by: Solomon Hykes <solomon@docker.com> (github: shykes)
Beam: convenience functions Listen and Connect

These convenience functions expose a familiar face to the unknown and bizarre world of beam networking.

Docker-DCO-1.1-Signed-off-by: Solomon Hykes <solomon@docker.com> (github: shykes)