]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
*** empty log message ***
authorsage <sage@29311d96-e01e-0410-9327-a35deaab8ce9>
Fri, 27 May 2005 17:28:03 +0000 (17:28 +0000)
committersage <sage@29311d96-e01e-0410-9327-a35deaab8ce9>
Fri, 27 May 2005 17:28:03 +0000 (17:28 +0000)
git-svn-id: https://ceph.svn.sf.net/svnroot/ceph@248 29311d96-e01e-0410-9327-a35deaab8ce9

ceph/Makefile
ceph/config.cc
ceph/mds/MDS.cc
ceph/messages/MOSDReadReply.h
ceph/osd/FakeStore.cc
ceph/osd/FakeStore.h
ceph/osd/OSD.cc
ceph/osd/ObjectStore.h

index d697f5a806d201d856bf42335700b19e119d0a99..d5123358cce0d3a7e0e650087d6a74ac311e6399 100644 (file)
@@ -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 $@
index 5763e97d41cdf4739a678c14285d6aa970039cf2..ff68a235f730c010c777ddb70c47f7dc145be6e2 100644 (file)
@@ -25,7 +25,7 @@ md_config_t g_conf = {
   fake_clock: false,
   fakemessenger_serialize: true,
 
-  debug: 3,
+  debug: 20,
   
   // --- client ---
   client_cache_size: 400,
index a6ce45e2f05f7b2370c133ad1c3bf36dab48cd22..df8978bd38cd5364f9f9f333f7310739c72c0cb0 100644 (file)
 #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"
index c224a0da5bdd726206ec15fb7a355fca01ebe9c0..71153852b74866829f348f799182e88ccdceb1b3 100644 (file)
@@ -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);
index b0558838bd95a7e6169636c9a9631248840af9ff..29e921f9b9b493ce3a6f625785d3f94b80db4e51 100644 (file)
@@ -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());
index e0ce241ebfd64df1426ba5d352e1fbded67d89c0..e160839db7d0afdfcc7869ca9e9a88ef4e2d1ecb 100644 (file)
@@ -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, 
index e8f716879bd8d88fcf46cce5737d7fc81393556e..fb1daa413304d194efc99f619092ce31b2792140 100644 (file)
 #include "messages/MOSDOp.h"
 #include "messages/MOSDOpReply.h"
 
-#include <unistd.h>
-#include <stdlib.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <fcntl.h>
-#include <sys/file.h>
 #include <iostream>
 #include <cassert>
 #include <errno.h>
+#include <sys/stat.h>
+
 
 #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());
 }
 
index 34e59ed085f25bad90042d630e6c87e2b78b63fa..8552236b92be3ba9f94590ee0ca1987dd8715208 100644 (file)
@@ -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;
   */
 
 };