diff options
| author | Konstantin Belousov <kib@FreeBSD.org> | 2025-08-19 04:54:27 +0000 |
|---|---|---|
| committer | Konstantin Belousov <kib@FreeBSD.org> | 2025-10-18 05:12:36 +0000 |
| commit | 25cecc4ba284096376b1348a807c0e2704d1b746 (patch) | |
| tree | c7fcc5d993dc1a8646eb532e2294a01bb7439fbe | |
| parent | 78382caa3edbea4c3d3aad2b47ff9db3d77fc978 (diff) | |
kern/kern_event.c: extract kqueue_acquire_ref() from kqueue_acquire()
Reviewed by: markj
Tested by: pho
Sponsored by: The FreeBSD Foundation
MFC after: 2 weeks
Differential revision: https://reviews.freebsd.org/D52045
| -rw-r--r-- | sys/kern/kern_event.c | 27 |
1 files changed, 16 insertions, 11 deletions
diff --git a/sys/kern/kern_event.c b/sys/kern/kern_event.c index 5435f9702d06..80c289f7d802 100644 --- a/sys/kern/kern_event.c +++ b/sys/kern/kern_event.c @@ -1871,17 +1871,8 @@ done: } static int -kqueue_acquire(struct file *fp, struct kqueue **kqp) +kqueue_acquire_ref(struct kqueue *kq) { - int error; - struct kqueue *kq; - - error = 0; - - kq = fp->f_data; - if (fp->f_type != DTYPE_KQUEUE || kq == NULL) - return (EINVAL); - *kqp = kq; KQ_LOCK(kq); if ((kq->kq_state & KQ_CLOSING) == KQ_CLOSING) { KQ_UNLOCK(kq); @@ -1889,8 +1880,22 @@ kqueue_acquire(struct file *fp, struct kqueue **kqp) } kq->kq_refcnt++; KQ_UNLOCK(kq); + return (0); +} - return error; +static int +kqueue_acquire(struct file *fp, struct kqueue **kqp) +{ + struct kqueue *kq; + int error; + + kq = fp->f_data; + if (fp->f_type != DTYPE_KQUEUE || kq == NULL) + return (EINVAL); + error = kqueue_acquire_ref(kq); + if (error == 0) + *kqp = kq; + return (error); } static void |
