ceph/ceph — pull request #941 by jecluis (2013-12-14 00:26:45+00:00)
Title: #6028 : ensure that erasure coded pools don't work until the osds can handle it

DISCLAIMER: patches need rebasing, better commit messages, and tags; whole branch also based on an old version of master that will likely need conflict resolution.

This patch series will first add a Feature to the OSD, an OSD feature to ceph_features.h and a pg_pool_t flag that were required for the subsequent patches. I'm assuming the branch will need further cleanup upon integration with the remaining code, and that we will get rid of those commits.

The rest of the patch series focuses on tracking which OSDs are EC-capable, allowing a user to set a pool as Erasure Coded iff all the up OSDs are EC-capable. The OSDMap will henceforward reflect the existence of at least one EC pool and all OSDs will subsequently set the EC feature on-disk, thus forcing on-disk incompatibility with previous versions. The monitors also won't allow any OSDs that are not EC-capable to boot.