If we ping before the watch is registered we will get ETIMEDOUT (the ping
is are a read op that will fail to see the watch registration).
Signed-off-by: Sage Weil <sage@redhat.com>
assert(op->session);
ldout(cct, 10) << " pinging osd that serves lingering tid " << p->first << " (osd." << op->session->osd << ")" << dendl;
toping.insert(op->session);
- if (op->is_watch && !op->last_error)
+ if (op->is_watch && op->registered && !op->last_error)
_send_linger_ping(op);
}
for (map<uint64_t,CommandOp*>::iterator p = s->command_ops.begin();