recalc_linger_op_target() was checking and then setting
linger_op->pgid and linger_op->active, but these were only set by
recalc_linger_op_target(). This was only called by handle_osd_map(),
so the first osdmap after a watch was established would cause a resend
of the watch. Analogous to the normal Op, set this information by
calling recalc_linger_op_target in send_linger().
Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
info->register_tid = _op_submit(o);
} else {
// first send
+ // populate info->pgid and info->acting so we
+ // don't resend the linger op on the next osdmap update
+ recalc_linger_op_target(info);
info->register_tid = op_submit(o);
}