eventpoll: rename ep_refcount_dec_and_test() to ep_put()

ep_refcount_dec_and_test() mirrors refcount_dec_and_test() verbatim,
which reads fine at a call site like

  if (ep_refcount_dec_and_test(ep))
      ep_free(ep);

but awkward at

  WARN_ON_ONCE(ep_refcount_dec_and_test(ep));

and does not pair cleanly with ep_get(). Rename to the idiomatic
ep_put() and reword the kerneldoc to spell out the return-value
contract (caller is responsible for ep_free() iff the return is
true). Leave ep_put() as a bool-returning wrapper -- we cannot fold
ep_free() into it because ep_remove() calls it under ep->mtx and the
mutex would still be held when ep_free()'s mutex_destroy() ran (see
commit 8c2e52ebbe "eventpoll: don't decrement ep refcount while
still holding the ep mutex").

No functional change.

Signed-off-by: Christian Brauner (Amutable) <brauner@kernel.org>
Link: https://patch.msgid.link/20260424-work-epoll-rework-v1-6-249ed00a20f3@kernel.org
Signed-off-by: Christian Brauner <brauner@kernel.org>
This commit is contained in:
Christian Brauner 2026-04-24 15:46:37 +02:00
parent 858c14b1f0
commit 31c95f087e
No known key found for this signature in database
GPG Key ID: 91C61BC06578DCA2

View File

@ -969,9 +969,10 @@ static void ep_get(struct eventpoll *ep)
}
/*
* Returns true if the event poll can be disposed
* Drop a reference to @ep; returns true iff it was the last, in which
* case the caller is responsible for ep_free().
*/
static bool ep_refcount_dec_and_test(struct eventpoll *ep)
static bool ep_put(struct eventpoll *ep)
{
if (!refcount_dec_and_test(&ep->refcount))
return false;
@ -1100,7 +1101,7 @@ static void ep_remove(struct eventpoll *ep, struct epitem *epi)
ep_remove_file(ep, epi, file);
ep_remove_epi(ep, epi);
WARN_ON_ONCE(ep_refcount_dec_and_test(ep));
WARN_ON_ONCE(ep_put(ep));
}
/*
@ -1160,7 +1161,7 @@ static void ep_clear_and_put(struct eventpoll *ep)
}
mutex_unlock(&ep->mtx);
if (ep_refcount_dec_and_test(ep))
if (ep_put(ep))
ep_free(ep);
}
@ -1339,7 +1340,7 @@ void eventpoll_release_file(struct file *file)
mutex_unlock(&ep->mtx);
if (ep_refcount_dec_and_test(ep))
if (ep_put(ep))
ep_free(ep);
goto again;
}