diff options
Diffstat (limited to 'net')
-rw-r--r-- | net/ceph/messenger.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/net/ceph/messenger.c b/net/ceph/messenger.c index fcb40c12b1f8..3b3d33ea9ed8 100644 --- a/net/ceph/messenger.c +++ b/net/ceph/messenger.c | |||
@@ -2569,6 +2569,11 @@ static int try_write(struct ceph_connection *con) | |||
2569 | int ret = 1; | 2569 | int ret = 1; |
2570 | 2570 | ||
2571 | dout("try_write start %p state %lu\n", con, con->state); | 2571 | dout("try_write start %p state %lu\n", con, con->state); |
2572 | if (con->state != CON_STATE_PREOPEN && | ||
2573 | con->state != CON_STATE_CONNECTING && | ||
2574 | con->state != CON_STATE_NEGOTIATING && | ||
2575 | con->state != CON_STATE_OPEN) | ||
2576 | return 0; | ||
2572 | 2577 | ||
2573 | more: | 2578 | more: |
2574 | dout("try_write out_kvec_bytes %d\n", con->out_kvec_bytes); | 2579 | dout("try_write out_kvec_bytes %d\n", con->out_kvec_bytes); |
@@ -2594,6 +2599,8 @@ more: | |||
2594 | } | 2599 | } |
2595 | 2600 | ||
2596 | more_kvec: | 2601 | more_kvec: |
2602 | BUG_ON(!con->sock); | ||
2603 | |||
2597 | /* kvec data queued? */ | 2604 | /* kvec data queued? */ |
2598 | if (con->out_kvec_left) { | 2605 | if (con->out_kvec_left) { |
2599 | ret = write_partial_kvec(con); | 2606 | ret = write_partial_kvec(con); |