mon: PaxosService: can be readable even if proposing

As long as we have a stable version in memory that is lower or equal to
the version we want.

Fixes: #9321
Fixes: #9322

Signed-off-by: Joao Eduardo Luis <joao@redhat.com>
mon: fix MDS health status from peons

The health data was there, but we were attempting
to enumerate MDS GIDs from pending_mdsmap (empty on
peons) instead of mdsmap (populated from paxos updates)

Fixes: #10151
Backport: giant

Signed-off-by: John Spray <john.spray@redhat.com>
Merge pull request #2996 from ceph/wip-10151

mon: fix MDS health status from peons

Reviewed-by: Greg Farnum <gfarnum@redhat.com>
mon: OSDMonitor: allow adding tiers to FS pools

This was an overly-strict check.  In fact it is perfectly
fine to set an overlay on a pool that is already in use
as a filesystem data or metadata pool.

Fixes: #10135

Signed-off-by: John Spray <john.spray@redhat.com>
Merge pull request #2945 from ceph/wip-9321

mon: PaxosService: can be readable even if proposing

Reviewed-by: Sage Weil <sage@redhat.com>
Merge pull request #3008 from ceph/wip-10135

mon: OSDMonitor: allow adding tiers to FS pools

Reviewed-by: Greg Farnum <gfarnum@redhat.com>
client: invalidate kernel dentries one by one

Our trick to trim the whole kernel dentry tree does not work for 3.18+ kernel.
The fix is trim kernel dentries one by one.

Fixes: #9997
Signed-off-by: Yan, Zheng <zyan@redhat.com>
Merge pull request #3056 from ceph/wip-9997-1

client: invalidate kernel dentries one by one

Reviewed-by: John Spray <john.spray@redhat.com>
tests: vstart_wrapper.sh must call vstart.sh with a list of daemons

The list of daemons is provided in the $CEPH_START environment variable
but vstart_wrapper.sh incorrectly uses the $VSTART_ARGS empty variable.

As a consequence vstart.sh calls init-ceph stop which kills daemons that
do not belong to the test.

http://tracker.ceph.com/issues/10215 Fixes: #10215

Signed-off-by: Loic Dachary <loic@dachary.org>
qa: cephtool/test.sh use regular strings to list tests

Using the array notation to list test is error prone and more
complicated to write.

It also fixes a bug : only the first test of each series (MON, OSD, MDS)
was run and the others were ignored.

Signed-off-by: Loic Dachary <loic@dachary.org>
Merge pull request #3067 from dachary/wip-cephtool

fix cephtools running only part of the tests + avoid killing wrong daemons

Reviewed-by: Sage Weil <sage@redhat.com>
qa: fix teardown in cephtool's test_mon_mds

This was missing from 17b5fc9a but we didn't notice
because the test wasn't being run by the gitbuilders.

Signed-off-by: John Spray <john.spray@redhat.com>
Merge pull request #3065 from ceph/wip-cephtool-exec

qa: fix cephtool tests not getting run

Reviewed-by: Loic Dachary <ldachary@redhat.com>
0.89
crush/CrushWrapper: fix _search_item_exists

Reported-by: Pawel Sadowski <ceph@sadziu.pl>
Signed-off-by: Sage Weil <sage@redhat.com>
crush/builder: prevent bucket weight underflow on item removal

It is possible to set a bucket weight that is not the sum of the item
weights if you manually modify/build the CRUSH map.  Protect against any
underflow on the bucket weight when removing items.

Signed-off-by: Sage Weil <sage@redhat.com>
crush/CrushWrapper: fix create_or_move_item when name exists but item does not

We were using item_exists(), which simply checks if we have a name defined
for the item.  Instead, use _search_item_exists(), which looks for an
instance of the item somewhere in the hierarchy.  This matches what
get_item_weightf() is doing, which ensures we get a non-negative weight
that converts properly to floating point.

Backport: giant, firefly
Fixes: #9998
Reported-by: Pawel Sadowski <ceph@sadziu.pl>
Signed-off-by: Sage Weil <sage@redhat.com>