From bf118b6422e88b6365f26298706ed0bdc9cc546f Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Wed, 2 Dec 2009 14:42:39 -0800 Subject: [PATCH] --- yaml --- r: 188638 b: refs/heads/master c: 33d4909ccc094b8262667bccdd52e01458bee0df h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/fs/ceph/ioctl.c | 5 ++++- trunk/fs/ceph/ioctl.h | 1 + 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index e10c3d1a6b6b..97ad135dcb26 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 1d1de9160e0d8aff0d67a21137b62e63ffd6f184 +refs/heads/master: 33d4909ccc094b8262667bccdd52e01458bee0df diff --git a/trunk/fs/ceph/ioctl.c b/trunk/fs/ceph/ioctl.c index 4c33e19fc241..8a5bcae62846 100644 --- a/trunk/fs/ceph/ioctl.c +++ b/trunk/fs/ceph/ioctl.c @@ -24,6 +24,8 @@ static long ceph_ioctl_get_layout(struct file *file, void __user *arg) l.stripe_count = ceph_file_layout_stripe_count(ci->i_layout); l.object_size = ceph_file_layout_object_size(ci->i_layout); l.data_pool = le32_to_cpu(ci->i_layout.fl_pg_pool); + l.preferred_osd = + (s32)le32_to_cpu(ci->i_layout.fl_pg_preferred); if (copy_to_user(arg, &l, sizeof(l))) return -EFAULT; } @@ -79,7 +81,8 @@ static long ceph_ioctl_set_layout(struct file *file, void __user *arg) req->r_args.setlayout.layout.fl_object_size = cpu_to_le32(l.object_size); req->r_args.setlayout.layout.fl_pg_pool = cpu_to_le32(l.data_pool); - req->r_args.setlayout.layout.fl_pg_preferred = cpu_to_le32((s32)-1); + req->r_args.setlayout.layout.fl_pg_preferred = + cpu_to_le32(l.preferred_osd); err = ceph_mdsc_do_request(mdsc, parent_inode, req); ceph_mdsc_put_request(req); diff --git a/trunk/fs/ceph/ioctl.h b/trunk/fs/ceph/ioctl.h index 3c511dab3730..25e4f1a9d059 100644 --- a/trunk/fs/ceph/ioctl.h +++ b/trunk/fs/ceph/ioctl.h @@ -10,6 +10,7 @@ struct ceph_ioctl_layout { __u64 stripe_unit, stripe_count, object_size; __u64 data_pool; + __s64 preferred_osd; }; #define CEPH_IOC_GET_LAYOUT _IOR(CEPH_IOCTL_MAGIC, 1, \