diff options
-rw-r--r-- | net/ceph/messenger.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/net/ceph/messenger.c b/net/ceph/messenger.c index 0e478a0f4204..30efc5c18622 100644 --- a/net/ceph/messenger.c +++ b/net/ceph/messenger.c | |||
@@ -840,9 +840,13 @@ static bool ceph_msg_data_bio_advance(struct ceph_msg_data_cursor *cursor, | |||
840 | 840 | ||
841 | if (!cursor->bvec_iter.bi_size) { | 841 | if (!cursor->bvec_iter.bi_size) { |
842 | bio = bio->bi_next; | 842 | bio = bio->bi_next; |
843 | cursor->bvec_iter = bio->bi_iter; | 843 | cursor->bio = bio; |
844 | if (bio) | ||
845 | cursor->bvec_iter = bio->bi_iter; | ||
846 | else | ||
847 | memset(&cursor->bvec_iter, 0, | ||
848 | sizeof(cursor->bvec_iter)); | ||
844 | } | 849 | } |
845 | cursor->bio = bio; | ||
846 | 850 | ||
847 | if (!cursor->last_piece) { | 851 | if (!cursor->last_piece) { |
848 | BUG_ON(!cursor->resid); | 852 | BUG_ON(!cursor->resid); |