diff mbox

[4/5] Btrfs: return transid to userspace from SNAP_CREATE_ASYNC ioctl

Message ID 1269285210-19085-5-git-send-email-sage@newdream.net (mailing list archive)
State New, archived
Headers show

Commit Message

Sage Weil March 22, 2010, 7:13 p.m. UTC
None
diff mbox

Patch

diff --git a/fs/btrfs/ioctl.c b/fs/btrfs/ioctl.c
index 7ea4ff0..fd824a7 100644
--- a/fs/btrfs/ioctl.c
+++ b/fs/btrfs/ioctl.c
@@ -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;
diff --git a/fs/btrfs/ioctl.h b/fs/btrfs/ioctl.h
index d9169d8..4f7fe37 100644
--- a/fs/btrfs/ioctl.h
+++ b/fs/btrfs/ioctl.h
@@ -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