moby/daemon/graphdriver
Derek 9bbed5ab4c change to lazy Unmount
syscall.Unmount failed sometimes when user interrupted exporting,
for example a Ctrl-C, or pipe to commands which closed the pipe early,
like "docker export <container_name> | file -"; this syscall.Unmount
could sometimes return EBUSY and didn't actually umount the filesystem;
which would cause a following export command fail to mount;
change to lazy Unmount with MNT_DETACH can fix the problem, this is
the same behavior as in Shutdown;

```text
time="2015-01-03T21:27:26Z" level=error msg="Warning: error unmounting device
34a3e77cdbca17ceffd0636aee0415bb412996adb12360bfe2585ce30467fa8e: device or resource busy"
```

```
$ docker export thirsty_ardinghelli | file -
/dev/stdin: POSIX tar archive
time="2015-01-03T21:58:17Z" level=fatal msg="write /dev/stdout: broken pipe"
$ docker export thirsty_ardinghelli
time="2015-01-03T21:54:33Z" level=fatal msg="Error: thirsty_ardinghelli: Error getting container
34a3e77cdbca17ceffd0636aee0415bb412996adb12360bfe2585ce30467fa8e from driver devicemapper:
Error mounting '/dev/mapper/docker-253:0-3148372-34a3e77cdbca17ceffd0636aee0415bb412996adb12360bfe2585ce30467fa8e'
on '/var/lib/docker/devicemapper/mnt/34a3e77cdbca17ceffd0636aee0415bb412996adb12360bfe2585ce30467fa8e': device or resource busy"
```

Signed-off-by: Derek Che <drc@yahoo-inc.com>
2015-01-04 00:10:48 +00:00
..
aufs Refactor to optimize storage driver ApplyDiff() 2014-12-17 21:54:23 -08:00
btrfs btrfs: build tag to enable showing version info 2014-11-13 16:43:53 -05:00
devmapper change to lazy Unmount 2015-01-04 00:10:48 +00:00
graphtest Mknod more loopbacks for devmapper 2014-11-21 16:20:35 -08:00
overlay Refactor to optimize storage driver ApplyDiff() 2014-12-17 21:54:23 -08:00
vfs Remove unused function from vfs storage driver 2014-12-23 00:36:20 +01:00
driver.go Refactor to optimize storage driver ApplyDiff() 2014-12-17 21:54:23 -08:00
fsdiff.go Refactor to optimize storage driver ApplyDiff() 2014-12-17 21:54:23 -08:00