Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 188599
b: refs/heads/master
c: ff1d1f7
h: refs/heads/master
i:
  188597: e7213a1
  188595: 604442d
  188591: 38381e0
v: v3
  • Loading branch information
Noah Watkins authored and Sage Weil committed Oct 30, 2009
1 parent 7a08a6a commit ca2a776
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 6 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: 645a102581b3639836b17d147c35d574fd6e8267
refs/heads/master: ff1d1f7179363209b7f1493ea39b666f50d05cf4
15 changes: 10 additions & 5 deletions trunk/fs/ceph/osdmap.c
Original file line number Diff line number Diff line change
Expand Up @@ -731,7 +731,7 @@ void ceph_calc_file_object_mapping(struct ceph_file_layout *layout,
u32 sc = le32_to_cpu(layout->fl_stripe_count);
u32 bl, stripeno, stripepos, objsetno;
u32 su_per_object;
u64 t;
u64 t, su_offset;

dout("mapping %llu~%llu osize %u fl_su %u\n", off, *plen,
osize, su);
Expand All @@ -755,10 +755,15 @@ void ceph_calc_file_object_mapping(struct ceph_file_layout *layout,

/* *oxoff = *off % layout->fl_stripe_unit; # offset in su */
t = off;
*oxoff = do_div(t, su);
*oxoff += (stripeno % su_per_object) * su;

*oxlen = min_t(u64, *plen, su - *oxoff);
su_offset = do_div(t, su);
*oxoff = su_offset + (stripeno % su_per_object) * su;

/*
* Calculate the length of the extent being written to the selected
* object. This is the minimum of the full length requested (plen) or
* the remainder of the current stripe being written to.
*/
*oxlen = min_t(u64, *plen, su - su_offset);
*plen = *oxlen;

dout(" obj extent %llu~%llu\n", *oxoff, *oxlen);
Expand Down

0 comments on commit ca2a776

Please sign in to comment.