Fix simultaneous -e read and -e write usage

This allows using both -e read=FD and -e write=FD at the same time
with the same FD.
Without this patch, the -e write=FD is ignored if -e read=FD is used
at the same time.

Signed-off-by: Aurelien Jacobs <aurel@gnuage.org>
diff --git a/syscall.c b/syscall.c
index 51771c2..dfeef77 100644
--- a/syscall.c
+++ b/syscall.c
@@ -2494,17 +2494,21 @@
 		if (func == sys_read ||
 		    func == sys_pread ||
 		    func == sys_recv ||
-		    func == sys_recvfrom)
+		    func == sys_recvfrom) {
 			dumpstr(tcp, tcp->u_arg[1], tcp->u_rval);
-		else if (func == sys_readv)
+			return;
+		} else if (func == sys_readv) {
 			dumpiov(tcp, tcp->u_arg[2], tcp->u_arg[1]);
+			return;
 #if HAVE_SENDMSG
-		else if (func == sys_recvmsg)
+		} else if (func == sys_recvmsg) {
 			dumpiov_in_msghdr(tcp, tcp->u_arg[1]);
-		else if (func == sys_recvmmsg)
+			return;
+		} else if (func == sys_recvmmsg) {
 			dumpiov_in_mmsghdr(tcp, tcp->u_arg[1]);
+			return;
 #endif
-		return;
+		}
 	}
 	if (qual_flags[tcp->u_arg[0]] & QUAL_WRITE) {
 		if (func == sys_write ||
@@ -2520,7 +2524,6 @@
 		else if (func == sys_sendmmsg)
 			dumpiov_in_mmsghdr(tcp, tcp->u_arg[1]);
 #endif
-		return;
 	}
 }