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)
Adding the new options to the `docker ps` documentation.

URL of documentation page is: http://docs.docker.io/en/latest/reference/commandline/cli/#ps

Docker-DCO-1.1-Signed-off-by: Scott Collier <emailscottcollier@gmail.com> (github: scollier)
Adding options to `docker restart` documentation

URL of page is: http://docs.docker.io/en/latest/reference/commandline/cli/#restart

Docker-DCO-1.1-Signed-off-by: Scott Collier <emailscottcollier@gmail.com> (github: scollier)
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)
Fix init script cgroup mounting workarounds to be more similar to cgroupfs-mount and thus work properly

Docker-DCO-1.1-Signed-off-by: Andrew Page <admwiggin@gmail.com> (github: tianon)
Add variable for DOCKER_LOGFILE to sysvinit and use append instead of overwrite in opening the logfile

Docker-DCO-1.1-Signed-off-by: Andrew Page <admwiggin@gmail.com> (github: tianon)
add Net::Docker CPAN module

Docker-DCO-1.1-Signed-off-by: Sven Dowideit <SvenDowideit@fosiki.com> (github: SvenDowideit)
Merge pull request #4577 from SvenDowideit/moltar-perl-modules

add Net::Docker CPAN module
Like signal_linux.go, we don't have import os and os/signal

Docker-DCO-1.1-Signed-off-by: Kato Kazuyoshi <kato.kazuyoshi@gmail.com> (github: kzys)
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 #4583 from kzys/freebsd-signal

Like signal_linux.go, we don't have import os and os/signal
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