@@ -885,6 +885,13 @@ static noinline int btrfs_ioctl_snap_create(struct file *file,
async ? &transid : NULL);
fput(src_file);
}
+ if (!ret && async) {
+ struct btrfs_ioctl_vol_args __user *user_vol_args = arg;
+
+ if (copy_to_user(&user_vol_args->transid, &transid,
+ sizeof(transid)))
+ return -EFAULT;
+ }
out:
kfree(vol_args);
return ret;
@@ -22,12 +22,14 @@
#define BTRFS_IOCTL_MAGIC 0x94
#define BTRFS_VOL_NAME_MAX 255
-#define BTRFS_PATH_NAME_MAX 4087
+#define BTRFS_PATH_NAME_MAX 4071
/* this should be 4k */
struct btrfs_ioctl_vol_args {
__s64 fd;
char name[BTRFS_PATH_NAME_MAX + 1];
+ __u64 transid;
+ __u64 reserved;
};
#define BTRFS_INO_LOOKUP_PATH_MAX 4080