MINOR: fd: merge the read and write error bits into RW error

We always set them both, which makes sense since errors at the FD level
indicate a terminal condition for the socket that cannot be recovered.
Usually this is detected via a write error, but sometimes such an error
may asynchronously be reported on the read side. Let's simplify this
using only the write bit and calling it RW since it's used like this
everywhere, and leave the R bit spare for future use.
diff --git a/include/proto/fd.h b/include/proto/fd.h
index 9c7f66b..3c778ab 100644
--- a/include/proto/fd.h
+++ b/include/proto/fd.h
@@ -314,8 +314,7 @@
 	      ((evts & FD_EV_READY_R) ? FD_POLL_IN  : 0) |
 	      ((evts & FD_EV_READY_W) ? FD_POLL_OUT : 0) |
 	      ((evts & FD_EV_SHUT_R)  ? FD_POLL_HUP : 0) |
-	      ((evts & FD_EV_ERR_R)   ? FD_POLL_ERR : 0) |
-	      ((evts & FD_EV_ERR_W)   ? FD_POLL_ERR : 0);
+	      ((evts & FD_EV_ERR_RW)  ? FD_POLL_ERR : 0);
 
 	/* SHUTW reported while FD was active for writes is an error */
 	if ((fdtab[fd].ev & FD_EV_ACTIVE_W) && (evts & FD_EV_SHUT_W))
@@ -327,11 +326,11 @@
 		/* both sides stopped */
 		must_stop = FD_POLL_IN | FD_POLL_OUT;
 	}
-	else if (unlikely(!fd_recv_active(fd) && (evts & (FD_EV_READY_R | FD_EV_SHUT_R | FD_EV_ERR_R)))) {
+	else if (unlikely(!fd_recv_active(fd) && (evts & (FD_EV_READY_R | FD_EV_SHUT_R | FD_EV_ERR_RW)))) {
 		/* only send remains */
 		must_stop = FD_POLL_IN;
 	}
-	else if (unlikely(!fd_send_active(fd) && (evts & (FD_EV_READY_W | FD_EV_SHUT_W | FD_EV_ERR_W)))) {
+	else if (unlikely(!fd_send_active(fd) && (evts & (FD_EV_READY_W | FD_EV_SHUT_W | FD_EV_ERR_RW)))) {
 		/* only recv remains */
 		must_stop = FD_POLL_OUT;
 	}
diff --git a/include/types/fd.h b/include/types/fd.h
index 2630b66..e62e2a4 100644
--- a/include/types/fd.h
+++ b/include/types/fd.h
@@ -57,12 +57,12 @@
 #define FD_EV_ACTIVE_R_BIT 0
 #define FD_EV_READY_R_BIT  1
 #define FD_EV_SHUT_R_BIT   2
-#define FD_EV_ERR_R_BIT    3
+/* unused: 3 */
 
 #define FD_EV_ACTIVE_W_BIT 4
 #define FD_EV_READY_W_BIT  5
 #define FD_EV_SHUT_W_BIT   6
-#define FD_EV_ERR_W_BIT    7
+#define FD_EV_ERR_RW_BIT   7
 
 /* and flag values */
 #define FD_EV_ACTIVE_R  (1U << FD_EV_ACTIVE_R_BIT)
@@ -78,10 +78,10 @@
 #define FD_EV_SHUT_W    (1U << FD_EV_SHUT_W_BIT)
 #define FD_EV_SHUT_RW   (FD_EV_SHUT_R | FD_EV_SHUT_W)
 
-/* note that when FD_EV_ERR is set, SHUT is also set */
-#define FD_EV_ERR_R     (1U << FD_EV_ERR_R_BIT)
-#define FD_EV_ERR_W     (1U << FD_EV_ERR_W_BIT)
-#define FD_EV_ERR_RW    (FD_EV_ERR_R | FD_EV_ERR_W)
+/* note that when FD_EV_ERR is set, SHUT is also set. Also, ERR is for both
+ * directions at once (write error, socket dead, etc).
+ */
+#define FD_EV_ERR_RW    (1U << FD_EV_ERR_RW_BIT)
 
 
 /* This is the value used to mark a file descriptor as dead. This value is