]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mds: set path attr on directory objects
authorSage Weil <sage@newdream.net>
Mon, 10 Nov 2008 04:12:20 +0000 (20:12 -0800)
committerSage Weil <sage@newdream.net>
Mon, 10 Nov 2008 04:12:20 +0000 (20:12 -0800)
src/mds/CDir.cc

index 8980b3cbcf12d05234c2a7f008b4d2b1fa7afd6e..60bb9c3865fe3ae8040c485bd3f4ceab26a34bee 100644 (file)
@@ -1472,12 +1472,18 @@ void CDir::_commit(version_t want)
 
   // write it.
   SnapContext snapc;
-  cache->mds->objecter->write_full( get_ondisk_object(),
-                                   cache->mds->objecter->osdmap->file_to_object_layout( get_ondisk_object(),
-                                                                                        g_default_mds_dir_layout ),
-                                   snapc,
-                                   finalbl, 0,
-                                   NULL, new C_Dir_Committed(this, get_version()) );
+  ObjectMutation m;
+  m.write_full(finalbl);
+
+  string path;
+  inode->make_path_string(path);
+  m.setxattr("path", path);
+
+  cache->mds->objecter->mutate( get_ondisk_object(),
+                               cache->mds->objecter->osdmap->file_to_object_layout( get_ondisk_object(),
+                                                                                    g_default_mds_dir_layout ),
+                               m, snapc, 0,
+                               NULL, new C_Dir_Committed(this, get_version()) );
 }