Signed-off-by: Samuel Just <sjust@redhat.com>
}
if (!obs.exists) {
- if (pool.info.require_rollback() && op.extent.offset) {
+ if (pool.info.requires_aligned_append() && op.extent.offset) {
result = -EOPNOTSUPP;
break;
}
- } else if (op.extent.offset != oi.size && pool.info.require_rollback()) {
+ } else if (op.extent.offset != oi.size &&
+ pool.info.requires_aligned_append()) {
result = -EOPNOTSUPP;
break;
}
return !(get_type() == TYPE_ERASURE);
}
- bool requires_aligned_append() const { return is_erasure(); }
+ bool requires_aligned_append() const {
+ return is_erasure() && !has_flag(FLAG_EC_OVERWRITES);
+ }
uint64_t required_alignment() const { return stripe_width; }
bool can_shift_osds() const {