From: Yan, Zheng Date: Tue, 1 Apr 2014 13:08:02 +0000 (+0800) Subject: mds: add dentries in dirfrag to LRU in reverse order X-Git-Tag: v0.79~26^2~2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=16af25fba303a541bff83b18851f17dda9d51b99;p=ceph.git mds: add dentries in dirfrag to LRU in reverse order Files in a dirfrag are usually processed in the order of readdir results. Files at the beginning of are more likely to be used in the future than files at the last. Signed-off-by: Yan, Zheng --- diff --git a/src/mds/CDir.cc b/src/mds/CDir.cc index a3b4945e4d84..6e93ec5ecea7 100644 --- a/src/mds/CDir.cc +++ b/src/mds/CDir.cc @@ -1540,10 +1540,10 @@ void CDir::_omap_fetched(bufferlist& hdrbl, map& omap, bool stray = inode->is_stray(); - unsigned pos = 0; - for (map::iterator p = omap.begin(); - p != omap.end(); - ++p, ++pos) { + unsigned pos = omap.size() - 1; + for (map::reverse_iterator p = omap.rbegin(); + p != omap.rend(); + ++p, --pos) { // dname string dname; snapid_t first, last;