diff options
-rw-r--r-- | fs/ceph/ioctl.c | 5 | ||||
-rw-r--r-- | fs/ceph/ioctl.h | 1 |
2 files changed, 5 insertions, 1 deletions
diff --git a/fs/ceph/ioctl.c b/fs/ceph/ioctl.c index 4c33e19fc241..8a5bcae62846 100644 --- a/fs/ceph/ioctl.c +++ b/fs/ceph/ioctl.c | |||
@@ -24,6 +24,8 @@ static long ceph_ioctl_get_layout(struct file *file, void __user *arg) | |||
24 | l.stripe_count = ceph_file_layout_stripe_count(ci->i_layout); | 24 | l.stripe_count = ceph_file_layout_stripe_count(ci->i_layout); |
25 | l.object_size = ceph_file_layout_object_size(ci->i_layout); | 25 | l.object_size = ceph_file_layout_object_size(ci->i_layout); |
26 | l.data_pool = le32_to_cpu(ci->i_layout.fl_pg_pool); | 26 | l.data_pool = le32_to_cpu(ci->i_layout.fl_pg_pool); |
27 | l.preferred_osd = | ||
28 | (s32)le32_to_cpu(ci->i_layout.fl_pg_preferred); | ||
27 | if (copy_to_user(arg, &l, sizeof(l))) | 29 | if (copy_to_user(arg, &l, sizeof(l))) |
28 | return -EFAULT; | 30 | return -EFAULT; |
29 | } | 31 | } |
@@ -79,7 +81,8 @@ static long ceph_ioctl_set_layout(struct file *file, void __user *arg) | |||
79 | req->r_args.setlayout.layout.fl_object_size = | 81 | req->r_args.setlayout.layout.fl_object_size = |
80 | cpu_to_le32(l.object_size); | 82 | cpu_to_le32(l.object_size); |
81 | req->r_args.setlayout.layout.fl_pg_pool = cpu_to_le32(l.data_pool); | 83 | req->r_args.setlayout.layout.fl_pg_pool = cpu_to_le32(l.data_pool); |
82 | req->r_args.setlayout.layout.fl_pg_preferred = cpu_to_le32((s32)-1); | 84 | req->r_args.setlayout.layout.fl_pg_preferred = |
85 | cpu_to_le32(l.preferred_osd); | ||
83 | 86 | ||
84 | err = ceph_mdsc_do_request(mdsc, parent_inode, req); | 87 | err = ceph_mdsc_do_request(mdsc, parent_inode, req); |
85 | ceph_mdsc_put_request(req); | 88 | ceph_mdsc_put_request(req); |
diff --git a/fs/ceph/ioctl.h b/fs/ceph/ioctl.h index 3c511dab3730..25e4f1a9d059 100644 --- a/fs/ceph/ioctl.h +++ b/fs/ceph/ioctl.h | |||
@@ -10,6 +10,7 @@ | |||
10 | struct ceph_ioctl_layout { | 10 | struct ceph_ioctl_layout { |
11 | __u64 stripe_unit, stripe_count, object_size; | 11 | __u64 stripe_unit, stripe_count, object_size; |
12 | __u64 data_pool; | 12 | __u64 data_pool; |
13 | __s64 preferred_osd; | ||
13 | }; | 14 | }; |
14 | 15 | ||
15 | #define CEPH_IOC_GET_LAYOUT _IOR(CEPH_IOCTL_MAGIC, 1, \ | 16 | #define CEPH_IOC_GET_LAYOUT _IOR(CEPH_IOCTL_MAGIC, 1, \ |