[BUG] stream_sock: disable I/O on fds reporting an error

Upon read or write error, we cannot immediately close the FD because
we want to first report the error to the upper layer which will do it
itself. However, we want to prevent any further I/O from being performed
on the FD. This is especially important in case of speculative I/O where
nothing else could stop the FD from still being polled until the upper
layer takes care of the condition.
diff --git a/src/stream_sock.c b/src/stream_sock.c
index 30d6b62..9337df8 100644
--- a/src/stream_sock.c
+++ b/src/stream_sock.c
@@ -495,6 +495,7 @@
 
 	fdtab[fd].state = FD_STERROR;
 	fdtab[fd].ev &= ~FD_POLL_STICKY;
+	EV_FD_REM(fd);
 	si->flags |= SI_FL_ERR;
 	retval = 1;
 	goto out_wakeup;
@@ -756,6 +757,7 @@
 
 	fdtab[fd].state = FD_STERROR;
 	fdtab[fd].ev &= ~FD_POLL_STICKY;
+	EV_FD_REM(fd);
 	si->flags |= SI_FL_ERR;
 	task_wakeup(si->owner, TASK_WOKEN_IO);
 	return 1;
@@ -972,6 +974,7 @@
 		 */
 		fdtab[si->fd].state = FD_STERROR;
 		fdtab[si->fd].ev &= ~FD_POLL_STICKY;
+		EV_FD_REM(si->fd);
 		si->flags |= SI_FL_ERR;
 		goto out_wakeup;
 	}