If we do no assemble a target bl, we still want to return a valid return
code with the number of bytes read-ahead so that the C_RetryRead completion
will see this as a finish and call the caller's provided Context.
Signed-off-by: Sage Weil <sage@inktank.com>
(cherry picked from commit
032d4ec53e125ad91ad27ce58da6f38dcf1da92e)
ldout(cct, 10) << "readx result is " << rd->bl->length() << dendl;
} else {
ldout(cct, 10) << "readx no bufferlist ptr (readahead?), done." << dendl;
+ map<uint64_t,bufferlist>::reverse_iterator i = stripe_map.rbegin();
+ pos = i->first + i->second.length();
}
// done with read.