moby--moby/daemon/graphdriver
Kir Kolyshkin 6533136961 pkg/mount: wrap mount/umount errors
The errors returned from Mount and Unmount functions are raw
syscall.Errno errors (like EPERM or EINVAL), which provides
no context about what has happened and why.

Similar to os.PathError type, introduce mount.Error type
with some context. The error messages will now look like this:

> mount /tmp/mount-tests/source:/tmp/mount-tests/target, flags: 0x1001: operation not permitted

or

> mount tmpfs:/tmp/mount-test-source-516297835: operation not permitted

Before this patch, it was just

> operation not permitted

[v2: add Cause()]
[v3: rename MountError to Error, document Cause()]
[v4: fixes; audited all users]
[v5: make Error type private; changes after @cpuguy83 reviews]

Signed-off-by: Kir Kolyshkin <kolyshkin@gmail.com>
2018-12-10 20:07:02 -08:00
..
aufs aufs: get rid of mount() 2018-12-10 20:06:10 -08:00
btrfs pkg/mount: wrap mount/umount errors 2018-12-10 20:07:02 -08:00
copy Update tests to use gotest.tools 👼 2018-06-13 09:04:30 +02:00
devmapper pkg/mount: wrap mount/umount errors 2018-12-10 20:07:02 -08:00
graphtest Update tests to use gotest.tools 👼 2018-06-13 09:04:30 +02:00
lcow LCOW: ApplyDiff() use tar2ext4, not SVM 2018-10-09 16:10:46 -07:00
overlay Add ADD/COPY --chown flag support to Windows 2018-08-13 21:59:11 -07:00
overlay2 overlay2: use index=off if possible 2018-10-11 12:52:57 -07:00
overlayutils
quota Update tests to use gotest.tools 👼 2018-06-13 09:04:30 +02:00
register
vfs Add ADD/COPY --chown flag support to Windows 2018-08-13 21:59:11 -07:00
windows Remove duplicated words in daemon files 2018-10-06 00:06:38 +08:00
zfs pkg/mount: wrap mount/umount errors 2018-12-10 20:07:02 -08:00
counter.go
driver.go Deprecate AuFS storage driver, and add warning 2018-10-26 18:41:46 +02:00
driver_freebsd.go
driver_linux.go
driver_test.go Update tests to use gotest.tools 👼 2018-06-13 09:04:30 +02:00
driver_unsupported.go
driver_windows.go
errors.go
fsdiff.go Add layer id to NaiveDiffDriver untar timing log 2018-10-05 16:28:40 -07:00
plugin.go Move plugin client to separate interface 2018-05-30 15:22:10 -04:00
proxy.go Move plugin client creation to the extension point 2018-05-25 15:18:53 -04:00