Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 373397
b: refs/heads/master
c: a19dadf
h: refs/heads/master
i:
  373395: 15114b3
v: v3
  • Loading branch information
Alex Elder authored and Sage Weil committed May 2, 2013
1 parent 7e86484 commit 4471c6d
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 19 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 75d1c941e57d4247de4c0ed4064a65cf1a4d3ed8
refs/heads/master: a19dadfba91c73a12a666e6fdb9e242f325df825
36 changes: 18 additions & 18 deletions trunk/net/ceph/osd_client.c
Original file line number Diff line number Diff line change
Expand Up @@ -64,8 +64,7 @@ static int op_has_extent(int op)
* fill osd op in request message.
*/
static int calc_layout(struct ceph_file_layout *layout, u64 off, u64 *plen,
struct ceph_osd_req_op *op, u64 *objnum,
u64 *objoff, u64 *objlen)
u64 *objnum, u64 *objoff, u64 *objlen)
{
u64 orig_len = *plen;
int r;
Expand All @@ -81,21 +80,6 @@ static int calc_layout(struct ceph_file_layout *layout, u64 off, u64 *plen,
orig_len - *plen, off, *plen);
}

if (op_has_extent(op->op)) {
u32 osize = le32_to_cpu(layout->fl_object_size);
op->extent.offset = *objoff;
op->extent.length = *objlen;
if (op->extent.truncate_size <= off - *objoff) {
op->extent.truncate_size = 0;
} else {
op->extent.truncate_size -= off - *objoff;
if (op->extent.truncate_size > osize)
op->extent.truncate_size = osize;
}
}
if (op->op == CEPH_OSD_OP_WRITE)
op->payload_len = *plen;

dout("calc_layout objnum=%llx %llu~%llu\n", *objnum, *objoff, *objlen);

return 0;
Expand Down Expand Up @@ -594,11 +578,27 @@ struct ceph_osd_request *ceph_osdc_new_request(struct ceph_osd_client *osdc,
req->r_flags = flags;

/* calculate max write size */
r = calc_layout(layout, off, plen, ops, &objnum, &objoff, &objlen);
r = calc_layout(layout, off, plen, &objnum, &objoff, &objlen);
if (r < 0) {
ceph_osdc_put_request(req);
return ERR_PTR(r);
}

if (op_has_extent(ops[0].op)) {
u32 osize = le32_to_cpu(layout->fl_object_size);
ops[0].extent.offset = objoff;
ops[0].extent.length = objlen;
if (ops[0].extent.truncate_size <= off - objoff) {
ops[0].extent.truncate_size = 0;
} else {
ops[0].extent.truncate_size -= off - objoff;
if (ops[0].extent.truncate_size > osize)
ops[0].extent.truncate_size = osize;
}
}
if (ops[0].op == CEPH_OSD_OP_WRITE)
ops[0].payload_len = *plen;

req->r_file_layout = *layout; /* keep a copy */

snprintf(req->r_oid, sizeof(req->r_oid), "%llx.%08llx",
Expand Down

0 comments on commit 4471c6d

Please sign in to comment.