os/filestore/FileJournal: bail out if transaction is too large

if a transaction is too large to fit in the FileJournal's ring buffer,
we will wait. but if its size is larger than the max_size, it's likely
due to a bug or an invalid setting. in that case, we'd better fail
earlier.

Fixes: http://tracker.ceph.com/issues/16982
Signed-off-by: Kefu Chai <kchai@redhat.com>
This commit is contained in:
Kefu Chai 2016-08-19 14:50:38 +08:00
parent d71ccde4a3
commit a7623818db

View File

@ -1667,6 +1667,7 @@ void FileJournal::submit_entry(uint64_t seq, bufferlist& e, uint32_t orig_len,
<< " len " << e.length()
<< " (" << oncommit << ")" << dendl;
assert(e.length() > 0);
assert(e.length() < header.max_size);
if (osd_op)
osd_op->mark_event("commit_queued_for_journal_write");