MINOR: fd: reorder fd_add_to_fd_list()

The function was cleaned up a bit from duplicated parts inherited from
the initial attempt at getting it to work. It's a bit smaller and cleaner
this way.
diff --git a/src/fd.c b/src/fd.c
index 06fd690..87db0e9 100644
--- a/src/fd.c
+++ b/src/fd.c
@@ -191,50 +191,39 @@
 	if (!HA_ATOMIC_CAS(&fdtab[fd].cache.next, &next, -2))
 		goto redo_next;
 	__ha_barrier_store();
+
+	new = fd;
 redo_last:
 	/* First, insert in the linked list */
 	last = list->last;
 	old = -1;
-	new = fd;
-	if (unlikely(last == -1)) {
-		/* list is empty, try to add ourselves alone so that list->last=fd */
 
-		fdtab[fd].cache.prev = last;
+	fdtab[fd].cache.prev = last;
+	/* Make sure the "prev" store is visible before we update the last entry */
+	__ha_barrier_store();
 
-		/* Make sure the "prev" store is visible before we update the last entry */
-		__ha_barrier_store();
+	if (unlikely(last == -1)) {
+		/* list is empty, try to add ourselves alone so that list->last=fd */
 		if (unlikely(!HA_ATOMIC_CAS(&list->last, &old, new)))
 			    goto redo_last;
 
 		/* list->first was necessary -1, we're guaranteed to be alone here */
 		list->first = fd;
-
-		/* since we're alone at the end of the list and still locked(-2),
-		 * we know noone tried to add past us. Mark the end of list.
-		 */
-		fdtab[fd].cache.next = -1;
-		goto done; /* We're done ! */
 	} else {
-		/* non-empty list, add past the tail */
-		do {
-			new = fd;
-			old = -1;
-			fdtab[fd].cache.prev = last;
-
-			__ha_barrier_store();
-
-			/* adding ourselves past the last element
-			 * The CAS will only succeed if its next is -1,
-			 * which means it's in the cache, and the last element.
-			 */
-			if (likely(HA_ATOMIC_CAS(&fdtab[last].cache.next, &old, new)))
-				break;
+		/* adding ourselves past the last element
+		 * The CAS will only succeed if its next is -1,
+		 * which means it's in the cache, and the last element.
+		 */
+		if (unlikely(!HA_ATOMIC_CAS(&fdtab[last].cache.next, &old, new)))
 			goto redo_last;
-		} while (1);
+
+		/* Then, update the last entry */
+		list->last = fd;
 	}
-	/* Then, update the last entry */
-	list->last = fd;
 	__ha_barrier_store();
+	/* since we're alone at the end of the list and still locked(-2),
+	 * we know noone tried to add past us. Mark the end of list.
+	 */
 	fdtab[fd].cache.next = -1;
 	__ha_barrier_store();
 done: