diff options
author | Sage Weil <sage@inktank.com> | 2012-07-30 16:20:25 -0700 |
---|---|---|
committer | Sage Weil <sage@inktank.com> | 2012-07-30 18:15:31 -0700 |
commit | a4107026976f06c9a6ce8cc84a763564ee39d901 (patch) | |
tree | f8f83ffd302b50f9296fb36cc046409feafd597c /fs/ceph | |
parent | 6194ea895e447fdf4adfd23f67873a32bf4f15ae (diff) |
libceph: (re)initialize bio_iter on start of message receive
Previously, we were opportunistically initializing the bio_iter if it
appeared to be uninitialized in the middle of the read path. The problem
is that a sequence like:
- start reading message
- initialize bio_iter
- read half a message
- messenger fault, reconnect
- restart reading message
- ** bio_iter now non-NULL, not reinitialized **
- read past end of bio, crash
Instead, initialize the bio_iter unconditionally when we allocate/claim
the message for read.
Signed-off-by: Sage Weil <sage@inktank.com>
Reviewed-by: Alex Elder <elder@inktank.com>
Reviewed-by: Yehuda Sadeh <yehuda@inktank.com>
Diffstat (limited to 'fs/ceph')
0 files changed, 0 insertions, 0 deletions