[RESEND PATCH v2 0/2] watch_queue: Clean up some code

From: Siddh Raman Pant
Date: Thu Sep 01 2022 - 16:08:03 EST


There is a dangling reference to pipe in a watch_queue after clearing it.
Thus, NULL that pointer while clearing.

This change renders wqueue->defunct superfluous, as the latter is only used
to check if watch_queue is cleared. With this change, the pipe is NULLed
while clearing, so we can just check if the pipe is NULL.

Extending comment for watch_queue->pipe in the definition of watch_queue
made the comment conventionally too long (it was already past 80 chars),
so I have changed the struct annotations to be kerneldoc-styled, so that
I can extend the comment mentioning that the pipe is NULL when watch_queue
is cleared. In the process, I have also hopefully improved documentation
by documenting things which weren't documented before.

Changes in v2:
- Merged the NULLing and removing defunct patches.
- Removed READ_ONCE barrier in lock_wqueue().
- Improved and fixed errors in struct docs.
- Better commit messages.

Siddh Raman Pant (2):
include/linux/watch_queue: Improve documentation
kernel/watch_queue: NULL the dangling *pipe, and use it for clear
check

include/linux/watch_queue.h | 100 ++++++++++++++++++++++++++----------
kernel/watch_queue.c | 12 ++---
2 files changed, 79 insertions(+), 33 deletions(-)

--
2.35.1