On some platform, struct btrfs_ioctl_vol_args_v2 is defined, but the macros BTRFS_IOC_SNAP_DESTROY_V2, BTRFS_IOC_SNAP_CREATE_V2 and BTRFS_IOC_SUBVOL_CREATE_V2 are not defined. This will cause compile error. We should always check these macros and manually define them if necessary. Signed-off-by: Yang Xu <xuyang2018.jy@xxxxxxxxxxx> --- src/t_snapshot_deleted_subvolume.c | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/src/t_snapshot_deleted_subvolume.c b/src/t_snapshot_deleted_subvolume.c index c3adb1c4..d84ba35a 100644 --- a/src/t_snapshot_deleted_subvolume.c +++ b/src/t_snapshot_deleted_subvolume.c @@ -20,21 +20,6 @@ #define BTRFS_IOCTL_MAGIC 0x94 #endif -#ifndef BTRFS_IOC_SNAP_DESTROY_V2 -#define BTRFS_IOC_SNAP_DESTROY_V2 \ - _IOW(BTRFS_IOCTL_MAGIC, 63, struct btrfs_ioctl_vol_args_v2) -#endif - -#ifndef BTRFS_IOC_SNAP_CREATE_V2 -#define BTRFS_IOC_SNAP_CREATE_V2 \ - _IOW(BTRFS_IOCTL_MAGIC, 23, struct btrfs_ioctl_vol_args_v2) -#endif - -#ifndef BTRFS_IOC_SUBVOL_CREATE_V2 -#define BTRFS_IOC_SUBVOL_CREATE_V2 \ - _IOW(BTRFS_IOCTL_MAGIC, 24, struct btrfs_ioctl_vol_args_v2) -#endif - #ifndef BTRFS_SUBVOL_NAME_MAX #define BTRFS_SUBVOL_NAME_MAX 4039 #endif @@ -58,6 +43,21 @@ struct btrfs_ioctl_vol_args_v2 { }; #endif +#ifndef BTRFS_IOC_SNAP_DESTROY_V2 +#define BTRFS_IOC_SNAP_DESTROY_V2 \ + _IOW(BTRFS_IOCTL_MAGIC, 63, struct btrfs_ioctl_vol_args_v2) +#endif + +#ifndef BTRFS_IOC_SNAP_CREATE_V2 +#define BTRFS_IOC_SNAP_CREATE_V2 \ + _IOW(BTRFS_IOCTL_MAGIC, 23, struct btrfs_ioctl_vol_args_v2) +#endif + +#ifndef BTRFS_IOC_SUBVOL_CREATE_V2 +#define BTRFS_IOC_SUBVOL_CREATE_V2 \ + _IOW(BTRFS_IOCTL_MAGIC, 24, struct btrfs_ioctl_vol_args_v2) +#endif + int main(int argc, char **argv) { if (argc != 2) { -- 2.39.3