Hi,Su > > On Fri 26 Jan 2024 at 03:04, Yang Xu <xuyang2018.jy@xxxxxxxxxxx> wrote: > > Cc linux-btrfs > >> On some platform, struct btrfs_ioctl_vol_args_v2 is defined, but the >> > Would you mention what are these platforms? I found this phenomenon on RHEL8.9GA. Best Regards Yang Xu > > -- > Su >> 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) {