]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mds: use helper to generate dir inode object names
authorSage Weil <sage.weil@dreamhost.com>
Thu, 31 Mar 2011 23:51:43 +0000 (16:51 -0700)
committerSage Weil <sage.weil@dreamhost.com>
Thu, 31 Mar 2011 23:51:43 +0000 (16:51 -0700)
Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
src/mds/CInode.cc
src/mds/CInode.h
src/mds/MDCache.cc

index 694e837d8a3feb328fdec9d4244b21adf517129a..dcea4f8f43791721404b8beb4bafed4cc693bf7c 100644 (file)
@@ -935,6 +935,13 @@ struct C_Inode_Stored : public Context {
   }
 };
 
+object_t CInode::get_object_name(inodeno_t ino, frag_t fg, const char *suffix)
+{
+  char n[60];
+  snprintf(n, sizeof(n), "%llx.%08llx%s", (long long unsigned)ino, (long long unsigned)fg, suffix ? suffix : "");
+  return object_t(n);
+}
+
 void CInode::store(Context *fin)
 {
   dout(10) << "store " << get_version() << dendl;
@@ -951,9 +958,7 @@ void CInode::store(Context *fin)
   ObjectOperation m;
   m.write_full(bl);
 
-  char n[30];
-  snprintf(n, sizeof(n), "%llx.%08llx.inode", (long long unsigned)ino(), (long long unsigned)frag_t());
-  object_t oid(n);
+  object_t oid = CInode::get_object_name(ino(), frag_t(), ".inode");
   object_locator_t oloc(mdcache->mds->mdsmap->get_metadata_pg_pool());
 
   mdcache->mds->objecter->mutate(oid, oloc, m, snapc, g_clock.now(), 0,
@@ -987,9 +992,7 @@ void CInode::fetch(Context *fin)
   C_Inode_Fetched *c = new C_Inode_Fetched(this, fin);
   C_Gather *gather = new C_Gather(c);
 
-  char n[30];
-  snprintf(n, sizeof(n), "%llx.%08llx", (long long unsigned)ino(), (long long unsigned)frag_t());
-  object_t oid(n);
+  object_t oid = CInode::get_object_name(ino(), frag_t(), "");
   object_locator_t oloc(mdcache->mds->mdsmap->get_metadata_pg_pool());
 
   ObjectOperation rd;
@@ -998,8 +1001,7 @@ void CInode::fetch(Context *fin)
   mdcache->mds->objecter->read(oid, oloc, rd, CEPH_NOSNAP, &c->bl, 0, gather->new_sub());
 
   // read from separate object too
-  snprintf(n, sizeof(n), "%llx.%08llx.inode", (long long unsigned)ino(), (long long unsigned)frag_t());
-  object_t oid2(n);
+  object_t oid2 = CInode::get_object_name(ino(), frag_t(), ".inode");
   mdcache->mds->objecter->read(oid2, oloc, 0, 0, CEPH_NOSNAP, &c->bl2, 0, gather->new_sub());
 }
 
@@ -1081,9 +1083,7 @@ void CInode::store_parent(Context *fin)
   // write it.
   SnapContext snapc;
 
-  char n[30];
-  snprintf(n, sizeof(n), "%llx.%08llx", (long long unsigned)ino(), (long long unsigned)frag_t());
-  object_t oid(n);
+  object_t oid = get_object_name(ino(), frag_t(), "");
   object_locator_t oloc(mdcache->mds->mdsmap->get_metadata_pg_pool());
 
   mdcache->mds->objecter->mutate(oid, oloc, m, snapc, g_clock.now(), 0,
index e90bf7a12e6f77d969b2b4eee4f64746a37ab9a1..31859ed73194fa613f978335e0e470fdcfed9fd4 100644 (file)
@@ -550,6 +550,8 @@ private:
   void name_stray_dentry(string& dname);
 
 
+  static object_t get_object_name(inodeno_t ino, frag_t fg, const char *suffix);
+
   
   // -- dirtyness --
   version_t get_version() { return inode.version; }
index 7e27980d7cc53e8941d7412c323f59e742bc2361..832c578476c869822b726abae53671e4d3792171 100644 (file)
@@ -4951,9 +4951,7 @@ void MDCache::_recovered(CInode *in, int r, uint64_t size, utime_t mtime)
 
 void MDCache::purge_prealloc_ino(inodeno_t ino, Context *fin)
 {
-  char n[30];
-  snprintf(n, sizeof(n), "%llx.%08llx", (long long unsigned)ino, 0ull);
-  object_t oid(n);
+  object_t oid = CInode::get_object_name(ino, frag_t(), "");
   object_locator_t oloc(mds->mdsmap->get_metadata_pg_pool());
 
   dout(10) << "purge_prealloc_ino " << ino << " oid " << oid << dendl;