size_t is too small on 32 bit platforms.
void Filer::file_to_extents(inodeno_t ino, ceph_file_layout *layout,
- __u64 offset, size_t len,
+ __u64 offset, __u64 len,
vector<ObjectExtent>& extents)
{
dout(10) << "file_to_extents " << offset << "~" << len
* ranges in objects on (primary) osds)
*/
void file_to_extents(inodeno_t ino, ceph_file_layout *layout,
- __u64 offset, size_t len,
+ __u64 offset, __u64 len,
vector<ObjectExtent>& extents);
ceph_file_layout *layout,
snapid_t snap,
__u64 offset,
- size_t len,
+ __u64 len,
bufferlist *bl, // ptr to data
int flags,
Context *onfinish) {
ceph_file_layout *layout,
const SnapContext& snapc,
__u64 offset,
- size_t len,
+ __u64 len,
bufferlist& bl,
utime_t mtime,
int flags,
ceph_file_layout *layout,
const SnapContext& snapc,
__u64 offset,
- size_t len,
+ __u64 len,
__u32 truncate_seq,
utime_t mtime,
int flags,
ceph_file_layout *layout,
const SnapContext& snapc,
__u64 offset,
- size_t len,
+ __u64 len,
utime_t mtime,
int flags,
Context *onack,
ceph_file_layout *layout,
const SnapContext& snapc,
__u64 offset,
- size_t len,
+ __u64 len,
utime_t mtime,
int flags,
Context *onack,
onfinish);
}
-void ObjectCacher::bh_read_finish(sobject_t oid, loff_t start, size_t length, bufferlist &bl)
+void ObjectCacher::bh_read_finish(sobject_t oid, loff_t start, __u64 length, bufferlist &bl)
{
//lock.Lock();
dout(7) << "bh_read_finish "
}
}
-void ObjectCacher::bh_write_ack(sobject_t oid, loff_t start, size_t length, tid_t tid)
+void ObjectCacher::bh_write_ack(sobject_t oid, loff_t start, __u64 length, tid_t tid)
{
//lock.Lock();
//lock.Unlock();
}
-void ObjectCacher::bh_write_commit(sobject_t oid, loff_t start, size_t length, tid_t tid)
+void ObjectCacher::bh_write_commit(sobject_t oid, loff_t start, __u64 length, tid_t tid)
{
//lock.Lock();
{
bool success = true;
list<BufferHead*> hit_ls;
- map<size_t, bufferlist> stripe_map; // final buffer offset -> substring
+ map<__u64, bufferlist> stripe_map; // final buffer offset -> substring
for (vector<ObjectExtent>::iterator ex_it = rd->extents.begin();
ex_it != rd->extents.end();
loff_t opos = ex_it->offset;
map<loff_t, BufferHead*>::iterator bh_it = hits.begin();
assert(bh_it->second->start() <= opos);
- size_t bhoff = opos - bh_it->second->start();
+ __u64 bhoff = opos - bh_it->second->start();
map<__u32,__u32>::iterator f_it = ex_it->buffer_extents.begin();
- size_t foff = 0;
+ __u64 foff = 0;
while (1) {
BufferHead *bh = bh_it->second;
assert(opos == (loff_t)(bh->start() + bhoff));
<< " frag " << f_it->first << "~" << f_it->second << " +" << foff
<< dendl;
- size_t len = MIN(f_it->second - foff,
+ __u64 len = MIN(f_it->second - foff,
bh->length() - bhoff);
bufferlist bit; // put substr here first, since substr_of clobbers, and
// we may get multiple bh's at this stripe_map position
dout(10) << "readx has all buffers" << dendl;
// ok, assemble into result buffer.
- size_t pos = 0;
+ __u64 pos = 0;
if (rd->bl) {
rd->bl->clear();
- for (map<size_t,bufferlist>::iterator i = stripe_map.begin();
+ for (map<__u64,bufferlist>::iterator i = stripe_map.begin();
i != stripe_map.end();
i++) {
assert(pos == i->first);
f_it != ex_it->buffer_extents.end();
f_it++) {
dout(10) << "writex writing " << f_it->first << "~" << f_it->second << " into " << *bh << " at " << opos << dendl;
- size_t bhoff = bh->start() - opos;
+ __u64 bhoff = bh->start() - opos;
assert(f_it->second <= bh->length() - bhoff);
// get the frag we're mapping in
// blocking wait for write.
-bool ObjectCacher::wait_for_write(size_t len, Mutex& lock)
+bool ObjectCacher::wait_for_write(__u64 len, Mutex& lock)
{
int blocked = 0;
void wrunlock(Object *o);
public:
- void bh_read_finish(sobject_t oid, loff_t offset, size_t length, bufferlist &bl);
- void bh_write_ack(sobject_t oid, loff_t offset, size_t length, tid_t t);
- void bh_write_commit(sobject_t oid, loff_t offset, size_t length, tid_t t);
+ void bh_read_finish(sobject_t oid, loff_t offset, __u64 length, bufferlist &bl);
+ void bh_write_ack(sobject_t oid, loff_t offset, __u64 length, tid_t t);
+ void bh_write_commit(sobject_t oid, loff_t offset, __u64 length, tid_t t);
void lock_ack(list<sobject_t>& oids, tid_t tid);
class C_ReadFinish : public Context {
ObjectCacher *oc;
sobject_t oid;
loff_t start;
- size_t length;
+ __u64 length;
public:
bufferlist bl;
- C_ReadFinish(ObjectCacher *c, sobject_t o, loff_t s, size_t l) : oc(c), oid(o), start(s), length(l) {}
+ C_ReadFinish(ObjectCacher *c, sobject_t o, loff_t s, __u64 l) : oc(c), oid(o), start(s), length(l) {}
void finish(int r) {
oc->bh_read_finish(oid, start, length, bl);
}
ObjectCacher *oc;
sobject_t oid;
loff_t start;
- size_t length;
+ __u64 length;
public:
tid_t tid;
- C_WriteAck(ObjectCacher *c, sobject_t o, loff_t s, size_t l) : oc(c), oid(o), start(s), length(l) {}
+ C_WriteAck(ObjectCacher *c, sobject_t o, loff_t s, __u64 l) : oc(c), oid(o), start(s), length(l) {}
void finish(int r) {
oc->bh_write_ack(oid, start, length, tid);
}
ObjectCacher *oc;
sobject_t oid;
loff_t start;
- size_t length;
+ __u64 length;
public:
tid_t tid;
- C_WriteCommit(ObjectCacher *c, sobject_t o, loff_t s, size_t l) : oc(c), oid(o), start(s), length(l) {}
+ C_WriteCommit(ObjectCacher *c, sobject_t o, loff_t s, __u64 l) : oc(c), oid(o), start(s), length(l) {}
void finish(int r) {
oc->bh_write_commit(oid, start, length, tid);
}
bool is_cached(inodeno_t ino, vector<ObjectExtent>& extents, snapid_t snapid);
// write blocking
- bool wait_for_write(size_t len, Mutex& lock);
+ bool wait_for_write(__u64 len, Mutex& lock);
// blocking. atomic+sync.
int atomic_sync_readx(OSDRead *rd, inodeno_t ino, Mutex& lock);
/*** async+caching (non-blocking) file interface ***/
int file_is_cached(inodeno_t ino, ceph_file_layout *layout, snapid_t snapid,
- loff_t offset, size_t len) {
+ loff_t offset, __u64 len) {
vector<ObjectExtent> extents;
filer.file_to_extents(ino, layout, offset, len, extents);
return is_cached(ino, extents, snapid);
}
int file_read(inodeno_t ino, ceph_file_layout *layout, snapid_t snapid,
- loff_t offset, size_t len,
+ loff_t offset, __u64 len,
bufferlist *bl,
int flags,
Context *onfinish) {
}
int file_write(inodeno_t ino, ceph_file_layout *layout, const SnapContext& snapc,
- loff_t offset, size_t len,
+ loff_t offset, __u64 len,
bufferlist& bl, utime_t mtime, int flags) {
OSDWrite *wr = prepare_write(snapc, bl, mtime, flags);
filer.file_to_extents(ino, layout, offset, len, wr->extents);
int file_atomic_sync_read(inodeno_t ino, ceph_file_layout *layout,
snapid_t snapid,
- loff_t offset, size_t len,
+ loff_t offset, __u64 len,
bufferlist *bl, int flags,
Mutex &lock) {
OSDRead *rd = prepare_read(snapid, bl, flags);
int file_atomic_sync_write(inodeno_t ino, ceph_file_layout *layout,
const SnapContext& snapc,
- loff_t offset, size_t len,
+ loff_t offset, __u64 len,
bufferlist& bl, utime_t mtime, int flags,
Mutex &lock) {
OSDWrite *wr = prepare_write(snapc, bl, mtime, flags);
bufferlist *bl, Context *onfinish)
{
// all done
- size_t bytes_read = 0;
+ __u64 bytes_read = 0;
dout(15) << "_sg_read_finish" << dendl;
}
tid_t read(const object_t& oid, ceph_object_layout ol,
- __u64 off, size_t len, snapid_t snap, bufferlist *pbl, int flags,
+ __u64 off, __u64 len, snapid_t snap, bufferlist *pbl, int flags,
Context *onfinish) {
vector<OSDOp> ops(1);
ops[0].op.op = CEPH_OSD_OP_READ;
return op_submit(o);
}
tid_t write(const object_t& oid, ceph_object_layout ol,
- __u64 off, size_t len, const SnapContext& snapc, const bufferlist &bl,
+ __u64 off, __u64 len, const SnapContext& snapc, const bufferlist &bl,
utime_t mtime, int flags,
Context *onack, Context *oncommit) {
vector<OSDOp> ops(1);
return op_submit(o);
}
tid_t zero(const object_t& oid, ceph_object_layout ol,
- __u64 off, size_t len, const SnapContext& snapc, utime_t mtime, int flags,
+ __u64 off, __u64 len, const SnapContext& snapc, utime_t mtime, int flags,
Context *onack, Context *oncommit) {
vector<OSDOp> ops(1);
ops[0].op.op = CEPH_OSD_OP_ZERO;