ceph/ceph — pull request #2364 by dachary (2014-08-31 12:43:03+00:00)
Title: erasure-code: plugin feature bit

There are two new plugins (isa and lrc). When upgrading a cluster, there
must be a protection against the following scenario:

* the mon are upgraded but not the osd
* a new pool is created using plugin isa
* the osd fail to load the isa plugin because they have not been
upgraded

A feature bit is added : PLUGINS_V2. The isa and lrc plugins require
PLUGINS_V2 support via the new required_feature() method. The monitor
will only agree to create an erasure code profile for a given plugin if
the entire cluster advertises PLUGINS_V2. An OSD cannot boot in a
cluster where the MON require PLUGINS_V2 because the OSDMap contains a
pool that has been created with PLUGINS_V2 required.

This is going to be needed each time new plugins are supported. new
versions of the already supported plugins are expected to be backward
compatible.

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

Signed-off-by: Loic Dachary