1
0
mirror of https://github.com/docker/cli.git synced 2026-01-15 07:40:57 +03:00

Check if the target loopback is a block device

Upstream-commit: 8a5d927a5337b1c9a0c8478c4e522ce0ded09b85
Component: engine
This commit is contained in:
Guillaume J. Charmes
2013-11-27 18:21:17 -08:00
parent 6eb8ce2948
commit db6404f914
2 changed files with 7 additions and 5 deletions

View File

@@ -39,8 +39,9 @@ func openNextAvailableLoopback(index int, sparseFile *osFile) (loopFile *osFile,
return nil, ErrAttachLoopbackDevice
}
// FIXME: Check here if target is a block device (in C: S_ISBLK(mode))
if fi.IsDir() {
if fi.Mode()&osModeDevice != osModeDevice {
utils.Errorf("Loopback device %s is not a block device.", target)
continue
}
// Open the targeted loopback (use OpenFile because Open sets O_CLOEXEC)

View File

@@ -46,9 +46,10 @@ const (
sysSysIoctl = syscall.SYS_IOCTL
sysEBusy = syscall.EBUSY
osORdOnly = os.O_RDONLY
osORdWr = os.O_RDWR
osOCreate = os.O_CREATE
osORdOnly = os.O_RDONLY
osORdWr = os.O_RDWR
osOCreate = os.O_CREATE
osModeDevice = os.ModeDevice
)
func toSysStatT(i interface{}) *sysStatT {