fabrics: fix infinite loop is discovery recursion contains a loop
It's possible that different discovery controllers may refer to
each other. In this case, we will get into an infinite loop as
we don't track that we have already connected and seen this.
The kernel doesn't protect us from this for discovery controllers
because it always allows duplicate discovery controllers.
Signed-off-by: Sagi Grimberg <sagi@grimberg.me> Signed-off-by: Keith Busch <kbusch@kernel.org>