diff options
author | glebius <glebius@FreeBSD.org> | 2014-09-07 05:44:14 +0000 |
---|---|---|
committer | glebius <glebius@FreeBSD.org> | 2014-09-07 05:44:14 +0000 |
commit | bd6b462b17463bbec1c8401d1b4a29dc8332c04b (patch) | |
tree | 1181f50bed6508a83d057b5111d9ef157a8aa135 /sys/kern | |
parent | e5f8f27ad74b6c82d3e5b272e369673a9521431c (diff) | |
download | FreeBSD-src-bd6b462b17463bbec1c8401d1b4a29dc8332c04b.zip FreeBSD-src-bd6b462b17463bbec1c8401d1b4a29dc8332c04b.tar.gz |
Fix for r271182.
Submitted by: mjg
Pointy hat to: me, submitter and everyone who urged me to commit
Diffstat (limited to 'sys/kern')
-rw-r--r-- | sys/kern/uipc_socket.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/sys/kern/uipc_socket.c b/sys/kern/uipc_socket.c index c6c3152..8a8f957 100644 --- a/sys/kern/uipc_socket.c +++ b/sys/kern/uipc_socket.c @@ -3245,6 +3245,7 @@ static int filt_soread(struct knote *kn, long hint) { struct socket *so; + int ret; so = kn->kn_fp->f_data; SOCKBUF_LOCK_ASSERT(&so->so_rcv); @@ -3267,11 +3268,12 @@ filt_soread(struct knote *kn, long hint) CURVNET_SET(so->so_vnet); if (V_socket_hhh[HHOOK_FILT_SOREAD]->hhh_nhooks > 0) - /* This hook returning non-zero indicates an event, not error */ - return (hhook_run_socket(so, NULL, HHOOK_FILT_SOREAD)); + ret = hhook_run_socket(so, NULL, HHOOK_FILT_SOREAD); + else + ret = 0; CURVNET_RESTORE(); - - return (0); + + return (ret); } static void |