]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mds: make thrash_exports select random frags
authorSage Weil <sage@newdream.net>
Thu, 6 Jan 2011 21:42:29 +0000 (13:42 -0800)
committerSage Weil <sage@newdream.net>
Fri, 7 Jan 2011 22:17:29 +0000 (14:17 -0800)
We were always picking the first frag.

Signed-off-by: Sage Weil <sage@newdream.net>
src/mds/MDS.cc

index 322064cb4374752633fcd094f6fd81698e4790b5..6f3bdf6150d1b7d1cddbecd98413f5123632549e 100644 (file)
@@ -1798,8 +1798,13 @@ do { \
 
     list<CDir*> ls;
     in->get_dirfrags(ls);
-    if (ls.empty()) continue;                // must be an open dir.
-    CDir *dir = ls.front();
+    if (ls.empty())
+      continue;                // must be an open dir.
+    list<CDir*>::iterator p = ls.begin();
+    int n = rand() % ls.size();
+    while (n--)
+      ++p;
+    CDir *dir = *p;
     if (!dir->get_parent_dir()) continue;    // must be linked.
     if (!dir->is_auth()) continue;           // must be auth.