*** empty log message ***

git-svn-id: https://ceph.svn.sf.net/svnroot/ceph@242 29311d96-e01e-0410-9327-a35deaab8ce9
This commit is contained in:
sage 2005-05-24 20:33:02 +00:00
parent 7dc2228396
commit 8f3d1302c1
4 changed files with 14 additions and 4 deletions

View File

@ -42,7 +42,7 @@ public:
int main(int argc, char **argv) {
cout << "fakefuse starting" << endl;
cerr << "fakefuse starting" << endl;
MDCluster *mdc = new MDCluster(NUMMDS, NUMOSD);

View File

@ -144,18 +144,20 @@ class OSDCluster {
OSDExtent ex;
// find oid, osds
size_t blockno = offset / FILE_OBJECT_SIZE;
size_t blockno = cur / FILE_OBJECT_SIZE;
ex.oid = file_to_object( ino, blockno );
repgroup_t rg = file_to_repgroup(ino, blockno );
repgroup_to_osds( rg, ex.osds, num_reps );
// map range into object
ex.offset = offset % FILE_OBJECT_SIZE;
ex.offset = cur % FILE_OBJECT_SIZE;
if (left + ex.offset > FILE_OBJECT_SIZE)
ex.len = FILE_OBJECT_SIZE - ex.offset; // doesn't fully fit
else
ex.len = left; // fits!
left -= ex.len;
cur += ex.len;
// add it
extents.push_back(ex);

View File

@ -116,6 +116,7 @@ int Filer::issue_read(inodeno_t ino, size_t len, size_t offset, PendingOSDRead_t
dout(7) << "osd read ino " << ino << " len " << len << " off " << offset << " in " << extents.size() << " extents on " << num_rep << " replicas" << endl;
int nfrag = 0;
off_t off = 0;
for (list<OSDExtent>::iterator it = extents.begin();
it != extents.end();
it++) {
@ -126,6 +127,10 @@ int Filer::issue_read(inodeno_t ino, size_t len, size_t offset, PendingOSDRead_t
MOSDRead *m = new MOSDRead(last_tid, it->oid, it->len, it->offset);
messenger->send_message(m, MSG_ADDR_OSD(it->osds[r]), 0);
// note offset into read buffer
p->read_off[it->oid] = off;
off += it->len;
// add to gather set
p->outstanding_ops.insert(last_tid);
op_reads[last_tid] = p;
@ -151,7 +156,8 @@ Filer::handle_osd_read_reply(MOSDReadReply *m)
m->clear_raw_message();
} else {
// copy result into buffer
size_t off = m->get_offset() - p->orig_offset;
size_t off = p->read_off[m->get_oid()];
dout(7) << "filer: got frag at " << off << " len " << m->get_len() << endl;
memcpy(p->buffer + off, m->get_buffer(), m->get_len());
}

View File

@ -38,6 +38,8 @@ typedef struct {
char **dataptr;
char **freeptr;
map<object_t, off_t> read_off;
size_t bytes_read;
Context *onfinish;
} PendingOSDRead_t;