]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
Merge remote-tracking branch 'origin/master' into wip-inode-scrub 2814/head
authorGreg Farnum <gfarnum@redhat.com>
Fri, 7 Nov 2014 21:15:58 +0000 (13:15 -0800)
committerGreg Farnum <gfarnum@redhat.com>
Fri, 7 Nov 2014 21:15:58 +0000 (13:15 -0800)
Conflicts:
src/common/Makefile.am
src/mds/Server.cc

Signed-off-by: Greg Farnum <gfarnum@redhat.com>
17 files changed:
1  2 
src/common/Makefile.am
src/common/ceph_strings.cc
src/include/ceph_fs.h
src/mds/CDir.cc
src/mds/CInode.cc
src/mds/CInode.h
src/mds/MDCache.cc
src/mds/MDCache.h
src/mds/MDS.cc
src/mds/MDS.h
src/mds/Makefile.am
src/mds/Mutation.h
src/mds/Server.cc
src/mds/Server.h
src/mds/mdstypes.cc
src/mds/mdstypes.h
src/test/Makefile.am

index f14cc4f40f864636017fb92aafb0efa41c314c49,1f6077e59d72f498f487c30835e8320e430e3665..bb305ea4893350fae092c3d8cdaff6d4ed1236ac
@@@ -204,7 -206,7 +206,8 @@@ noinst_HEADERS += 
        common/hobject.h \
        common/linux_version.h \
        common/module.h \
-       common/Continuation.h
++      common/Continuation.h \
+       common/Readahead.h
  
  noinst_LTLIBRARIES += libcommon.la
  
Simple merge
Simple merge
diff --cc src/mds/CDir.cc
Simple merge
Simple merge
Simple merge
index 2d62f4ed710596b0c20134164bf714043a6e4cc7,5166abb25155cfa6caba7ba70758c69207ae6499..ebd175504b3a0e56c0b36ffa44041ac79c944e00
@@@ -326,11 -326,13 +326,12 @@@ void MDCache::init_layouts(
    }
  }
  
 -CInode *MDCache::create_system_inode(inodeno_t ino, int mode)
 +void MDCache::create_unlinked_system_inode(CInode *in, inodeno_t ino,
 +                                              int mode) const
  {
 -  dout(0) << "creating system inode with ino:" << ino << dendl;
 -  CInode *in = new CInode(this);
    in->inode.ino = ino;
    in->inode.version = 1;
+   in->inode.xattr_version = 1;
    in->inode.mode = 0500 | mode;
    in->inode.size = 0;
    in->inode.ctime = 
  
    if (in->is_base()) {
      if (in->is_root())
-       in->inode_auth = pair<int,int>(mds->whoami, CDIR_AUTH_UNKNOWN);
+       in->inode_auth = mds_authority_t(mds->whoami, CDIR_AUTH_UNKNOWN);
      else
-       in->inode_auth = pair<int,int>(in->ino() - MDS_INO_MDSDIR_OFFSET, CDIR_AUTH_UNKNOWN);
+       in->inode_auth = mds_authority_t(mds_rank_t(in->ino() - MDS_INO_MDSDIR_OFFSET), CDIR_AUTH_UNKNOWN);
      in->open_snaprealm();  // empty snaprealm
 +    assert(!in->snaprealm->parent); // created its own
      in->snaprealm->srnode.seq = 1;
    }
 -  
 +}
 +
 +CInode *MDCache::create_system_inode(inodeno_t ino, int mode)
 +{
 +  dout(0) << "creating system inode with ino:" << ino << dendl;
 +  CInode *in = new CInode(this);
 +  create_unlinked_system_inode(in, ino, mode);
    add_inode(in);
    return in;
  }
@@@ -8444,10 -8680,10 +8447,10 @@@ void MDCache::request_finish(MDRequestR
  }
  
  
- void MDCache::request_forward(MDRequestRef& mdr, int who, int port)
+ void MDCache::request_forward(MDRequestRef& mdr, mds_rank_t who, int port)
  {
    mdr->mark_event("forwarding request");
 -  if (mdr->client_request->get_source().is_client()) {
 +  if (mdr->client_request && mdr->client_request->get_source().is_client()) {
      dout(7) << "request_forward " << *mdr << " to mds." << who << " req "
              << *mdr->client_request << dendl;
      mds->forward_message_mds(mdr->client_request, who);
Simple merge
diff --cc src/mds/MDS.cc
Simple merge
diff --cc src/mds/MDS.h
Simple merge
Simple merge
Simple merge
index 9bb274ae93f84a541ac8f9beabaa361e3e94bfc5,a0db9e97cef98b56ea2fe476e824b067b6e72d0e..43180dd5ffabc4e71311897a8eb00d2558f4dc84
@@@ -2601,7 -2591,7 +2609,7 @@@ void Server::handle_client_open(MDReque
    // regular file?
    /*if (!cur->inode.is_file() && !cur->inode.is_dir()) {
      dout(7) << "not a file or dir " << *cur << dendl;
--    reply_request(mdr, -ENXIO);                 // FIXME what error do we want?
++    respond_to_request(mdr, -ENXIO);                 // FIXME what error do we want?
      return;
      }*/
    if ((req->head.args.open.flags & O_DIRECTORY) && !cur->inode.is_dir()) {
@@@ -3208,6 -3203,7 +3223,7 @@@ void Server::handle_client_file_setlock
    default:
      dout(10) << "got unknown lock type " << set_lock.type
             << ", dropping request!" << dendl;
 -    reply_request(mdr, -EOPNOTSUPP);
++    respond_to_request(mdr, -EOPNOTSUPP);
      return;
    }
  
        lock_state->remove_lock(set_lock, activated_locks);
        cur->take_waiting(CInode::WAIT_FLOCK, waiters);
      }
-     respond_to_request(mdr, 0);
-     /* For now we're ignoring the activated locks because their responses
-      * will be sent when the lock comes up again in rotation by the MDS.
-      * It's a cheap hack, but it's easy to code. */
      mds->queue_waiters(waiters);
 -    reply_request(mdr, 0);
++    respond_to_request(mdr, 0);
    } else {
      dout(10) << " lock attempt on " << set_lock << dendl;
      if (mdr->more()->flock_was_waiting &&
@@@ -3724,10 -3720,9 +3739,9 @@@ void Server::handle_set_vxattr(MDReques
        name.find("ceph.dir.layout") == 0) {
      inode_t *pi;
      string rest;
-     int64_t old_pool = -1;
      if (name.find("ceph.dir.layout") == 0) {
        if (!cur->is_dir()) {
 -      reply_request(mdr, -EINVAL);
 +      respond_to_request(mdr, -EINVAL);
        return;
        }
  
Simple merge
Simple merge
Simple merge
Simple merge