Blame SOURCES/fcoe-utils-1.0.29-recv_loop-break.patch

445b31
diff --git a/fipvlan.c b/fipvlan.c
445b31
index 6f8cf39..64702a7 100644
445b31
--- a/fipvlan.c
445b31
+++ b/fipvlan.c
445b31
@@ -749,9 +749,15 @@ static void recv_loop(int timeout)
445b31
 			rtnl_recv(pfd[0].fd, rtnl_listener_handler, NULL);
445b31
 		/* everything else should be FIP packet sockets */
445b31
 		for (i = 1; i < pfd_len; i++) {
445b31
-			if (pfd[i].revents & POLLIN)
445b31
-				fip_recv(pfd[i].fd, fip_vlan_handler, NULL);
445b31
+			if (pfd[i].revents & POLLIN) {
445b31
+				rc = fip_recv(pfd[i].fd, fip_vlan_handler,
445b31
+					      NULL);
445b31
+				if (rc < 0)
445b31
+					break;
445b31
+			}
445b31
 		}
445b31
+		if (i < pfd_len)
445b31
+			break;
445b31
 	}
445b31
 }
445b31