Loading fs/ceph/ioctl.c +13 −6 Original line number Diff line number Diff line Loading @@ -80,22 +80,29 @@ static long ceph_ioctl_set_layout(struct file *file, void __user *arg) /* validate changed params against current layout */ err = ceph_do_getattr(file->f_dentry->d_inode, CEPH_STAT_CAP_LAYOUT); if (!err) { nl.stripe_unit = ceph_file_layout_su(ci->i_layout); nl.stripe_count = ceph_file_layout_stripe_count(ci->i_layout); nl.object_size = ceph_file_layout_object_size(ci->i_layout); nl.data_pool = le32_to_cpu(ci->i_layout.fl_pg_pool); } else if (err) return err; memset(&nl, 0, sizeof(nl)); if (l.stripe_count) nl.stripe_count = l.stripe_count; else nl.stripe_count = ceph_file_layout_stripe_count(ci->i_layout); if (l.stripe_unit) nl.stripe_unit = l.stripe_unit; else nl.stripe_unit = ceph_file_layout_su(ci->i_layout); if (l.object_size) nl.object_size = l.object_size; else nl.object_size = ceph_file_layout_object_size(ci->i_layout); if (l.data_pool) nl.data_pool = l.data_pool; else nl.data_pool = ceph_file_layout_pg_pool(ci->i_layout); /* this is obsolete, and always -1 */ nl.preferred_osd = le64_to_cpu(-1); err = __validate_layout(mdsc, &nl); if (err) Loading fs/ceph/ioctl.h +2 −0 Original line number Diff line number Diff line Loading @@ -34,6 +34,8 @@ struct ceph_ioctl_layout { __u64 stripe_unit, stripe_count, object_size; __u64 data_pool; /* obsolete. new values ignored, always return -1 */ __s64 preferred_osd; }; Loading Loading
fs/ceph/ioctl.c +13 −6 Original line number Diff line number Diff line Loading @@ -80,22 +80,29 @@ static long ceph_ioctl_set_layout(struct file *file, void __user *arg) /* validate changed params against current layout */ err = ceph_do_getattr(file->f_dentry->d_inode, CEPH_STAT_CAP_LAYOUT); if (!err) { nl.stripe_unit = ceph_file_layout_su(ci->i_layout); nl.stripe_count = ceph_file_layout_stripe_count(ci->i_layout); nl.object_size = ceph_file_layout_object_size(ci->i_layout); nl.data_pool = le32_to_cpu(ci->i_layout.fl_pg_pool); } else if (err) return err; memset(&nl, 0, sizeof(nl)); if (l.stripe_count) nl.stripe_count = l.stripe_count; else nl.stripe_count = ceph_file_layout_stripe_count(ci->i_layout); if (l.stripe_unit) nl.stripe_unit = l.stripe_unit; else nl.stripe_unit = ceph_file_layout_su(ci->i_layout); if (l.object_size) nl.object_size = l.object_size; else nl.object_size = ceph_file_layout_object_size(ci->i_layout); if (l.data_pool) nl.data_pool = l.data_pool; else nl.data_pool = ceph_file_layout_pg_pool(ci->i_layout); /* this is obsolete, and always -1 */ nl.preferred_osd = le64_to_cpu(-1); err = __validate_layout(mdsc, &nl); if (err) Loading
fs/ceph/ioctl.h +2 −0 Original line number Diff line number Diff line Loading @@ -34,6 +34,8 @@ struct ceph_ioctl_layout { __u64 stripe_unit, stripe_count, object_size; __u64 data_pool; /* obsolete. new values ignored, always return -1 */ __s64 preferred_osd; }; Loading