osd/ECTransaction: only read partial stripes when below *original* object size
If we touch a partial stripe that is before the stripe-aligned object size
we need to read it in to do a read/modify/write that overalys the new data
onto the old. However, if we have two writes, both touching the same
stripe but not completely covering it, and that stripe is past the original
end of file, there is no old data to read. The previous code was using
the projected size to decide whether to do a stripe read, and would end
up trying to read data that wasn't there.
Fix by basing the stripe read decision on the original object size instead
of the projected_size.
Fixes: http://tracker.ceph.com/issues/19882 Signed-off-by: Sage Weil <sage@redhat.com>