libceph: define new ceph_file_layout structure
Define new ceph_file_layout structure and rename old ceph_file_layout to ceph_file_layout_legacy. This is preparation for adding namespace to ceph_file_layout structure. Signed-off-by: Yan, Zheng <zyan@redhat.com>
This commit is contained in:
@@ -9,9 +9,9 @@
|
||||
*/
|
||||
int ceph_file_layout_is_valid(const struct ceph_file_layout *layout)
|
||||
{
|
||||
__u32 su = le32_to_cpu(layout->fl_stripe_unit);
|
||||
__u32 sc = le32_to_cpu(layout->fl_stripe_count);
|
||||
__u32 os = le32_to_cpu(layout->fl_object_size);
|
||||
__u32 su = layout->stripe_unit;
|
||||
__u32 sc = layout->stripe_count;
|
||||
__u32 os = layout->object_size;
|
||||
|
||||
/* stripe unit, object size must be non-zero, 64k increment */
|
||||
if (!su || (su & (CEPH_MIN_STRIPE_UNIT-1)))
|
||||
@@ -27,6 +27,30 @@ int ceph_file_layout_is_valid(const struct ceph_file_layout *layout)
|
||||
return 1;
|
||||
}
|
||||
|
||||
void ceph_file_layout_from_legacy(struct ceph_file_layout *fl,
|
||||
struct ceph_file_layout_legacy *legacy)
|
||||
{
|
||||
fl->stripe_unit = le32_to_cpu(legacy->fl_stripe_unit);
|
||||
fl->stripe_count = le32_to_cpu(legacy->fl_stripe_count);
|
||||
fl->object_size = le32_to_cpu(legacy->fl_object_size);
|
||||
fl->pool_id = le32_to_cpu(legacy->fl_pg_pool);
|
||||
if (fl->pool_id == 0)
|
||||
fl->pool_id = -1;
|
||||
}
|
||||
EXPORT_SYMBOL(ceph_file_layout_from_legacy);
|
||||
|
||||
void ceph_file_layout_to_legacy(struct ceph_file_layout *fl,
|
||||
struct ceph_file_layout_legacy *legacy)
|
||||
{
|
||||
legacy->fl_stripe_unit = cpu_to_le32(fl->stripe_unit);
|
||||
legacy->fl_stripe_count = cpu_to_le32(fl->stripe_count);
|
||||
legacy->fl_object_size = cpu_to_le32(fl->object_size);
|
||||
if (fl->pool_id >= 0)
|
||||
legacy->fl_pg_pool = cpu_to_le32(fl->pool_id);
|
||||
else
|
||||
legacy->fl_pg_pool = 0;
|
||||
}
|
||||
EXPORT_SYMBOL(ceph_file_layout_to_legacy);
|
||||
|
||||
int ceph_flags_to_mode(int flags)
|
||||
{
|
||||
|
||||
@@ -932,7 +932,7 @@ struct ceph_osd_request *ceph_osdc_new_request(struct ceph_osd_client *osdc,
|
||||
if (opcode == CEPH_OSD_OP_CREATE || opcode == CEPH_OSD_OP_DELETE) {
|
||||
osd_req_op_init(req, which, opcode, 0);
|
||||
} else {
|
||||
u32 object_size = le32_to_cpu(layout->fl_object_size);
|
||||
u32 object_size = layout->object_size;
|
||||
u32 object_base = off - objoff;
|
||||
if (!(truncate_seq == 1 && truncate_size == -1ULL)) {
|
||||
if (truncate_size <= object_base) {
|
||||
@@ -948,7 +948,7 @@ struct ceph_osd_request *ceph_osdc_new_request(struct ceph_osd_client *osdc,
|
||||
}
|
||||
|
||||
req->r_flags = flags;
|
||||
req->r_base_oloc.pool = ceph_file_layout_pg_pool(*layout);
|
||||
req->r_base_oloc.pool = layout->pool_id;
|
||||
ceph_oid_printf(&req->r_base_oid, "%llx.%08llx", vino.ino, objnum);
|
||||
|
||||
req->r_snapid = vino.snap;
|
||||
|
||||
@@ -1770,9 +1770,9 @@ int ceph_calc_file_object_mapping(struct ceph_file_layout *layout,
|
||||
u64 *ono,
|
||||
u64 *oxoff, u64 *oxlen)
|
||||
{
|
||||
u32 osize = le32_to_cpu(layout->fl_object_size);
|
||||
u32 su = le32_to_cpu(layout->fl_stripe_unit);
|
||||
u32 sc = le32_to_cpu(layout->fl_stripe_count);
|
||||
u32 osize = layout->object_size;
|
||||
u32 su = layout->stripe_unit;
|
||||
u32 sc = layout->stripe_count;
|
||||
u32 bl, stripeno, stripepos, objsetno;
|
||||
u32 su_per_object;
|
||||
u64 t, su_offset;
|
||||
|
||||
Reference in New Issue
Block a user