mds: fix journaler to set temp_fetch_len appropriately and read the requested amount
The _prefetch() function which intereprets temp_fetch_len interprets
it as the amount of data we need from read_pos, which is the beginning
of read_buf. So by setting it to the amount *more* we needed, we were
getting stuck forever if we actually hit this condition. Fix it by
setting temp_fetch_len based on the amount of data we need in aggregate.
Furthermore, we were previously rounding *down* the requested amount in
order to read only full log segments. Round up instead!