]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
changed mds request format slightly, streamlined handler in mds/Server.cc
authorsageweil <sageweil@29311d96-e01e-0410-9327-a35deaab8ce9>
Fri, 7 Dec 2007 21:59:05 +0000 (21:59 +0000)
committersageweil <sageweil@29311d96-e01e-0410-9327-a35deaab8ce9>
Fri, 7 Dec 2007 21:59:05 +0000 (21:59 +0000)
git-svn-id: https://ceph.svn.sf.net/svnroot/ceph@2199 29311d96-e01e-0410-9327-a35deaab8ce9

trunk/ceph/client/Client.cc
trunk/ceph/include/ceph_fs.h
trunk/ceph/mds/Server.cc
trunk/ceph/mon/OSDMonitor.cc

index cdf56673ed8edba8d841342297835e912d27149a..25ca5a1527728722707e2ae38c6bb6136f76b2a5 100644 (file)
@@ -3146,7 +3146,7 @@ int Client::ftruncate(int fd, off_t length)
 int Client::_ftruncate(Fh *fh, off_t length) 
 {
   MClientRequest *req = new MClientRequest(CEPH_MDS_OP_TRUNCATE, messenger->get_myinst());
-  req->head.args.truncate.ino = fh->inode->inode.ino;
+  req->set_filepath( filepath("", fh->inode->inode.ino) );
   req->head.args.truncate.length = length;
 
   // FIXME where does FUSE maintain user information
index 0979b1f054c4b27800b4ec46aec93a94511d6bff..f895f88e870654a80a0565b827c3e065bc50972d 100644 (file)
@@ -308,7 +308,6 @@ struct ceph_mds_request_head {
                        __u32 mask;
                } stat;
                struct {
-                       ceph_ino_t ino;
                        __u32 mask;
                } fstat;
                struct {
@@ -337,12 +336,8 @@ struct ceph_mds_request_head {
                        __u32 mode;
                } open;
                struct {
-                       ceph_ino_t ino;  // optional
                        __s64 length;
                } truncate;
-               struct {
-                       ceph_ino_t ino;
-               } fsync;
        } args;
 };
 
index 404d2de39cf39dfc20c5b43010894095b983c70a..d99c82a4e2c623afceecfb67a36d2dac462d6070 100644 (file)
@@ -535,28 +535,6 @@ void Server::handle_client_request(MClientRequest *req)
                                           req->get_oldest_client_tid());
   }
 
-
-  // -----
-  // some ops are on ino's
-  switch (req->get_op()) {
-  case CEPH_MDS_OP_FSTAT:
-    ref = mdcache->get_inode(req->head.args.fstat.ino);
-    assert(ref);
-    break;
-    
-  case CEPH_MDS_OP_TRUNCATE:
-    if (!req->head.args.truncate.ino) 
-      break;   // can be called w/ either fh OR path
-    ref = mdcache->get_inode(req->head.args.truncate.ino);
-    assert(ref);
-    break;
-    
-  case CEPH_MDS_OP_FSYNC:
-    ref = mdcache->get_inode(req->head.args.fsync.ino);   // fixme someday no ino needed?
-    assert(ref);
-    break;
-  }
-
   // register + dispatch
   MDRequest *mdr = mdcache->request_start(req);
   if (!mdr) return;
@@ -592,6 +570,7 @@ void Server::dispatch_client_request(MDRequest *mdr)
     // inodes ops.
   case CEPH_MDS_OP_STAT:
   case CEPH_MDS_OP_LSTAT:
+  case CEPH_MDS_OP_FSTAT:
     handle_client_stat(mdr);
     break;
   case CEPH_MDS_OP_UTIME:
@@ -610,7 +589,7 @@ void Server::dispatch_client_request(MDRequest *mdr)
     handle_client_readdir(mdr);
     break;
   case CEPH_MDS_OP_FSYNC:
-    //handle_client_fsync(req, ref);
+    //handle_client_fsync(req);
     break;
 
     // funky.
index bda005095856e0e87a76cc53089cec873b730a5c..db3bc57841597443e4be7b6c0d89ffaf7a2c6015 100644 (file)
@@ -815,7 +815,7 @@ void OSDMonitor::tick()
   ps_t numps = osdmap.get_pg_num();
   int minrep = 1; 
   int maxrep = MIN(g_conf.num_osd, g_conf.osd_max_rep);
-  for (int nrep = 1; nrep <= maxrep; nrep++) { 
+  for (int nrep = minrep; nrep <= maxrep; nrep++) { 
     for (ps_t ps = 0; ps < numps; ++ps) {
       pg_t pgid = pg_t(pg_t::TYPE_REP, nrep, ps, -1);
       vector<int> osds;