rgw: MultipartObjectProcessor supports stripe size > chunk size

the head object for a multipart part should contain the entire stripe,
unlike a normal object where the head only contains the first chunk of
data (because it has to be written atomically)

Fixes: https://tracker.ceph.com/issues/42669

Signed-off-by: Casey Bodley <cbodley@redhat.com>
This commit is contained in:
Casey Bodley 2020-01-30 15:11:42 -05:00
parent 48526b90c7
commit 39d1ad6713

View File

@ -393,12 +393,10 @@ int MultipartObjectProcessor::prepare_head()
return r;
}
stripe_size = manifest_gen.cur_stripe_max_size();
uint64_t max_head_size = std::min(chunk_size, stripe_size);
set_head_chunk_size(max_head_size);
set_head_chunk_size(stripe_size);
chunk = ChunkProcessor(&writer, chunk_size);
stripe = StripeProcessor(&chunk, this, max_head_size);
stripe = StripeProcessor(&chunk, this, stripe_size);
return 0;
}