mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
Fix compilation errors with btrfs-progs-4.5
btrfs-progs-4.5 introduces device delete by devid for this reason btrfs_ioctl_vol_args_v2's name was encapsulated in a union this patch is for setting btrfs_ioctl_vol_args_v2's name using a C function in order to preserve compatibility with all btrfs-progs versions Signed-off-by: Julio Montes <imc.coder@gmail.com>
This commit is contained in:
parent
61ca308676
commit
a038cccf88
1 changed files with 8 additions and 3 deletions
|
@ -7,6 +7,10 @@ package btrfs
|
||||||
#include <dirent.h>
|
#include <dirent.h>
|
||||||
#include <btrfs/ioctl.h>
|
#include <btrfs/ioctl.h>
|
||||||
#include <btrfs/ctree.h>
|
#include <btrfs/ctree.h>
|
||||||
|
|
||||||
|
static void set_name_btrfs_ioctl_vol_args_v2(struct btrfs_ioctl_vol_args_v2* btrfs_struct, const char* value) {
|
||||||
|
snprintf(btrfs_struct->name, BTRFS_SUBVOL_NAME_MAX, "%s", value);
|
||||||
|
}
|
||||||
*/
|
*/
|
||||||
import "C"
|
import "C"
|
||||||
|
|
||||||
|
@ -159,9 +163,10 @@ func subvolSnapshot(src, dest, name string) error {
|
||||||
|
|
||||||
var args C.struct_btrfs_ioctl_vol_args_v2
|
var args C.struct_btrfs_ioctl_vol_args_v2
|
||||||
args.fd = C.__s64(getDirFd(srcDir))
|
args.fd = C.__s64(getDirFd(srcDir))
|
||||||
for i, c := range []byte(name) {
|
|
||||||
args.name[i] = C.char(c)
|
var cs = C.CString(name)
|
||||||
}
|
C.set_name_btrfs_ioctl_vol_args_v2(&args, cs)
|
||||||
|
C.free(unsafe.Pointer(cs))
|
||||||
|
|
||||||
_, _, errno := syscall.Syscall(syscall.SYS_IOCTL, getDirFd(destDir), C.BTRFS_IOC_SNAP_CREATE_V2,
|
_, _, errno := syscall.Syscall(syscall.SYS_IOCTL, getDirFd(destDir), C.BTRFS_IOC_SNAP_CREATE_V2,
|
||||||
uintptr(unsafe.Pointer(&args)))
|
uintptr(unsafe.Pointer(&args)))
|
||||||
|
|
Loading…
Reference in a new issue