db2bc43017
The `ioctl` interface for the `LOOP_CTL_GET_FREE` request on `/dev/loop-control` is a little different from what `unix.IoctlGetInt` expects: the first index is the returned status in `r1`, not an `int` pointer as the first parameter. Unfortunately we have to go a little lower level to get the appropriate loop device index out, using `unix.Syscall` directly to read from `r1`. Internally, the index is returned as a signed integer to match the internal `ioctl` expectations of interpreting a negative signed integer as an error at the userspace ABI boundary, so the direct interface of `ioctlLoopCtlGetFree` can remain as-is. [@kolyshkin: it still worked before this fix because of /dev scan fallback in ioctlLoopCtlGetFree()] Signed-off-by: Daniel Sweet <danieljsweet@icloud.com> Signed-off-by: Kir Kolyshkin <kolyshkin@gmail.com> |
||
---|---|---|
.. | ||
attach_loopback.go | ||
ioctl.go | ||
loop_wrapper.go | ||
loopback.go |