From: Sage Weil Date: Mon, 10 Nov 2008 04:12:20 +0000 (-0800) Subject: mds: set path attr on directory objects X-Git-Tag: v0.5~39 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=8a6d7ee6c452c1897c34ca30202328d6f9cb1f1c;p=ceph.git mds: set path attr on directory objects --- diff --git a/src/mds/CDir.cc b/src/mds/CDir.cc index 8980b3cbcf1..60bb9c3865f 100644 --- a/src/mds/CDir.cc +++ b/src/mds/CDir.cc @@ -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()) ); }