From caf8d22fc6d04d90a459985238928214313d5221 Mon Sep 17 00:00:00 2001 From: sage Date: Fri, 27 May 2005 17:28:03 +0000 Subject: [PATCH] *** empty log message *** git-svn-id: https://ceph.svn.sf.net/svnroot/ceph@248 29311d96-e01e-0410-9327-a35deaab8ce9 --- ceph/Makefile | 16 ++++++------- ceph/config.cc | 2 +- ceph/mds/MDS.cc | 5 ---- ceph/messages/MOSDReadReply.h | 3 +++ ceph/osd/FakeStore.cc | 4 ++-- ceph/osd/FakeStore.h | 2 +- ceph/osd/OSD.cc | 45 +++++++++++++---------------------- ceph/osd/ObjectStore.h | 9 ++++--- 8 files changed, 37 insertions(+), 49 deletions(-) diff --git a/ceph/Makefile b/ceph/Makefile index d697f5a806d20..d5123358cce0d 100644 --- a/ceph/Makefile +++ b/ceph/Makefile @@ -50,10 +50,10 @@ test: depend ${TEST_TARGETS} -import: mds/mds.o osd/OSD.o msg/FakeMessenger.o import.cc ${COMMON_OBJS} +import: mds/allmds.o osd/OSD.o msg/FakeMessenger.o import.cc ${COMMON_OBJS} ${CC} ${CFLAGS} ${LIBS} $^ -o $@ -singleclient: mds/mds.o osd/OSD.o fakesingleclient.o client/Client.o \ +singleclient: mds/allmds.o osd/OSD.o fakesingleclient.o client/Client.o \ msg/CheesySerializer.o msg/FakeMessenger.o fsck.o ${COMMON_OBJS} ${CC} ${CFLAGS} ${LIBS} $^ -o $@ @@ -61,26 +61,26 @@ fuseclient: client/Client.o client/fuse.o msg/CheesySerializer.o \ msg/FakeMessenger.o ${COMMON_OBJS} ${CC} ${CFLAGS} ${LIBS} -lfuse $^ -o $@ -fakemds: test/fakemds.cc msg/FakeMessenger.o fakeclient/FakeClient.o osd/OSD.o mds/mds.o ${COMMON_OBJS} +fakemds: test/fakemds.cc msg/FakeMessenger.o fakeclient/FakeClient.o osd/OSD.o mds/allmds.o ${COMMON_OBJS} ${CC} ${CFLAGS} ${LIBS} $^ -o $@ -mpitest: test/mpitest.o msg/MPIMessenger.cc mds/mds.o osd/OSD.o fakeclient/FakeClient.o ${COMMON_OBJS} +mpitest: test/mpitest.o msg/MPIMessenger.cc mds/allmds.o osd/OSD.o fakeclient/FakeClient.o ${COMMON_OBJS} ${MPICC} ${CFLAGS} $^ -o $@ mttest: test/mttest.cc msg/MTMessenger.cc ${COMMON_OBJS} ${MPICC} ${CFLAGS} ${LIBS} $^ -o $@ -mpifuse: mpifuse.cc mds/mds.o client/Client.o osd/OSD.o client/fuse.o msg/MPIMessenger.cc ${COMMON_OBJS} +mpifuse: mpifuse.cc mds/allmds.o client/Client.o osd/OSD.o client/fuse.o msg/MPIMessenger.cc ${COMMON_OBJS} ${MPICC} ${CFLAGS} ${LIBS} -lfuse $^ -o $@ -fakefuse: fakefuse.cc mds/mds.o client/Client.o osd/OSD.o client/fuse.o msg/FakeMessenger.cc msg/CheesySerializer.o ${COMMON_OBJS} +fakefuse: fakefuse.cc mds/allmds.o client/Client.o osd/OSD.o client/fuse.o msg/FakeMessenger.cc msg/CheesySerializer.o ${COMMON_OBJS} ${CC} ${CFLAGS} ${LIBS} -lfuse $^ -o $@ clean: rm -f *.o */*.o ${TARGETS} ${TEST_TARGETS} -mds/mds.o: ${MDS_OBJS} - ld -i -o mds/mds.o $^ +mds/allmds.o: ${MDS_OBJS} + ld -i -o mds/allmds.o $^ %.o: %.cc ${CC} ${CFLAGS} -c $< -o $@ diff --git a/ceph/config.cc b/ceph/config.cc index 5763e97d41cdf..ff68a235f730c 100644 --- a/ceph/config.cc +++ b/ceph/config.cc @@ -25,7 +25,7 @@ md_config_t g_conf = { fake_clock: false, fakemessenger_serialize: true, - debug: 3, + debug: 20, // --- client --- client_cache_size: 400, diff --git a/ceph/mds/MDS.cc b/ceph/mds/MDS.cc index a6ce45e2f05f7..df8978bd38cd5 100644 --- a/ceph/mds/MDS.cc +++ b/ceph/mds/MDS.cc @@ -25,11 +25,6 @@ #include "messages/MPing.h" #include "messages/MGenericMessage.h" -#include "messages/MOSDRead.h" -#include "messages/MOSDWrite.h" -#include "messages/MOSDReadReply.h" -#include "messages/MOSDWriteReply.h" - #include "messages/MClientMount.h" #include "messages/MClientMountAck.h" #include "messages/MClientRequest.h" diff --git a/ceph/messages/MOSDReadReply.h b/ceph/messages/MOSDReadReply.h index c224a0da5bdd7..71153852b7486 100644 --- a/ceph/messages/MOSDReadReply.h +++ b/ceph/messages/MOSDReadReply.h @@ -63,6 +63,9 @@ class MOSDReadReply : public Message { void set_len(int len) { this->st.len = len; } + void set_result(int result) { + this->st.result = result; + } virtual void decode_payload() { st = *(MOSDReadReply_st*)(raw_message + MSG_ENVELOPE_LEN); diff --git a/ceph/osd/FakeStore.cc b/ceph/osd/FakeStore.cc index b0558838bd95a..29e921f9b9b49 100644 --- a/ceph/osd/FakeStore.cc +++ b/ceph/osd/FakeStore.cc @@ -82,9 +82,9 @@ int FakeStore::stat(object_t oid, return ::stat(fn.c_str(), st); } -int FakeStore::destroy(object_t oid) +int FakeStore::remove(object_t oid) { - dout(20) << "destroy " << oid << endl; + dout(20) << "remove " << oid << endl; string fn; make_oname(oid,fn); return ::unlink(fn.c_str()); diff --git a/ceph/osd/FakeStore.h b/ceph/osd/FakeStore.h index e0ce241ebfd64..e160839db7d0a 100644 --- a/ceph/osd/FakeStore.h +++ b/ceph/osd/FakeStore.h @@ -22,7 +22,7 @@ class FakeStore : public ObjectStore { int stat(object_t oid, struct stat *st); - int destroy(object_t oid); + int remove(object_t oid); int truncate(object_t oid, off_t size); int read(object_t oid, diff --git a/ceph/osd/OSD.cc b/ceph/osd/OSD.cc index e8f716879bd8d..fb1daa413304d 100644 --- a/ceph/osd/OSD.cc +++ b/ceph/osd/OSD.cc @@ -16,15 +16,11 @@ #include "messages/MOSDOp.h" #include "messages/MOSDOpReply.h" -#include -#include -#include -#include -#include -#include #include #include #include +#include + #include "include/config.h" #undef dout @@ -32,6 +28,8 @@ char *osd_base_path = "./osddata"; + + // cons/des OSD::OSD(int id, Messenger *m) @@ -112,16 +110,13 @@ void OSD::handle_ping(MPing *m) -// -- osd_read - - void OSD::handle_op(MOSDOp *op) { switch (op->get_op()) { case OSD_OP_DELETE: { - int r = store->destroy(op->get_oid()); + int r = store->remove(op->get_oid()); dout(3) << "delete on " << op->get_oid() << " r = " << r << endl; // "ack" @@ -143,6 +138,7 @@ void OSD::handle_op(MOSDOp *op) messenger->send_message(reply, op->get_source(), op->get_source_port()); } + break; default: assert(0); @@ -154,26 +150,20 @@ void OSD::handle_op(MOSDOp *op) void OSD::read(MOSDRead *r) { - MOSDReadReply *reply; - - if (!store->exists(r->get_oid())) { - // send reply (failure) - dout(1) << "read open FAILED on " << r->get_oid() << endl; - reply = new MOSDReadReply(r, -1); - //assert(0); - } - // create reply, buffer - reply = new MOSDReadReply(r, r->get_len()); + MOSDReadReply *reply = new MOSDReadReply(r, r->get_len()); // read into a buffer char *buf = reply->get_buffer(); long got = store->read(r->get_oid(), r->get_len(), r->get_offset(), buf); - reply->set_len(got); - - dout(10) << "osd_read " << got << " / " << r->get_len() << " bytes from " << r->get_oid() << endl; + if (got >= 0) + reply->set_len(got); // "success" (or 0 bytes read) + else + reply->set_result(got); // error + + dout(10) << "read got " << got << " / " << r->get_len() << " bytes from " << r->get_oid() << endl; // send it messenger->send_message(reply, r->get_source(), r->get_source_port()); @@ -184,17 +174,14 @@ void OSD::read(MOSDRead *r) void OSD::write(MOSDWrite *m) { - + // write int r = store->write(m->get_oid(), m->get_len(), m->get_offset(), m->get_buffer()); - if (r < 0) { - assert(2+2==5); - } + assert(r >= 0); - // clean up + // reply MOSDWriteReply *reply = new MOSDWriteReply(m, r); - messenger->send_message(reply, m->get_source(), m->get_source_port()); } diff --git a/ceph/osd/ObjectStore.h b/ceph/osd/ObjectStore.h index 34e59ed085f25..8552236b92be3 100644 --- a/ceph/osd/ObjectStore.h +++ b/ceph/osd/ObjectStore.h @@ -12,10 +12,11 @@ class ObjectStore { virtual int init() = 0; virtual int finalize() = 0; - virtual bool exists(object_t oid) = 0; + // objects + virtual bool exists(object_t oid) = 0; // useful? virtual int stat(object_t oid, struct stat *st) = 0; // struct stat? - virtual int destroy(object_t oid) = 0; + virtual int remove(object_t oid) = 0; virtual int truncate(object_t oid, off_t size) = 0; virtual int read(object_t oid, @@ -26,13 +27,15 @@ class ObjectStore { char *buffer) = 0; /* + // attributes virtual int setattr(...) = 0; virtual int getattr(...) = 0; + // collections virtual int collection_create(coll_t c) = 0; virtual int collection_destroy(coll_t c) = 0; virtual int collection_add(coll_t c, object_t o) = 0; - virtual int collection_remote(coll_t c, object_t o) = 0; + virtual int collection_remove(coll_t c, object_t o) = 0; */ }; -- 2.39.5