osd: do not require EC feature bit from clients.

On Wed, 11 Jun 2014, Gregory Farnum wrote:
> In src/osd/OSDMap.cc:
> 
> > @@ -978,7 +978,8 @@ uint64_t OSDMap::get_features(uint64_t *pmask) const
> >      if (p->second.flags & pg_pool_t::FLAG_HASHPSPOOL) {
> >        features |= CEPH_FEATURE_OSDHASHPSPOOL;
> >      }
> > -    if (p->second.is_erasure()) {
> > +    if (p->second.is_erasure() &&
> > +	entity_type != CEPH_ENTITY_TYPE_CLIENT) { // not for clients
> 
> I just find it confusing if we say that the mask is not impacted by the
> entity_type we pass in, and I see benefits to doing it the other way. For
> instance, if we had it impacted by entity_type, we could do things based on
> the mask like identify features which the cluster doesn't currently require,
> but which it might after a config change, and warn clients if they don't
> support those.
> Whereas, what good does it do us to have the mask be constant across
> entity_types?

It can go either way.  Either mask = all features that might be set, or 
mark = all features that might be set for this entity type.  The current 
callers use it to modify the Policy required features for a given type, so 
either way will still work.  I'll switch it up..