From 47cceb5a1980ad2f355d078c3ae6132aed8bcec4 Mon Sep 17 00:00:00 2001 From: Sam Lang Date: Tue, 9 Apr 2013 16:49:11 -0500 Subject: [PATCH] --- yaml --- r: 373454 b: refs/heads/master c: a84cd29335f4ca38ca8405c1636ee3876bb292b5 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/fs/ceph/mdsmap.c | 8 +++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/[refs] b/[refs] index 652a945117e5..eb3b05232395 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 8b3e1a56982d0eafff0afb0ff9e87c8b944a9bdc +refs/heads/master: a84cd29335f4ca38ca8405c1636ee3876bb292b5 diff --git a/trunk/fs/ceph/mdsmap.c b/trunk/fs/ceph/mdsmap.c index 0d3c9240c61b..9278dec9e940 100644 --- a/trunk/fs/ceph/mdsmap.c +++ b/trunk/fs/ceph/mdsmap.c @@ -20,7 +20,10 @@ int ceph_mdsmap_get_random_mds(struct ceph_mdsmap *m) { int n = 0; int i; - char r; + + /* special case for one mds */ + if (1 == m->m_max_mds && m->m_info[0].state > 0) + return 0; /* count */ for (i = 0; i < m->m_max_mds; i++) @@ -30,8 +33,7 @@ int ceph_mdsmap_get_random_mds(struct ceph_mdsmap *m) return -1; /* pick */ - get_random_bytes(&r, 1); - n = r % n; + n = prandom_u32() % n; i = 0; for (i = 0; n > 0; i++, n--) while (m->m_info[i].state <= 0)