[PATCHSET 4/6] thread_with_file: promote to lib/

From: Darrick J. Wong
Date: Fri Feb 23 2024 - 20:08:51 EST


Hi all,

This is Kent Overstreet's series to lift the thread_with_file support
code to generic library code. This enables the kernel to create a
pseudo file that userspace can use to read deeply structured event
information from the kernel. kthreads are used to manage the buffers
underlying the file operations.

If you're going to start using this code, I strongly recommend pulling
from my git trees, which are linked below.

This has been running on the djcloud for months with no problems. Enjoy!
Comments and questions are, as always, welcome.

--D

kernel git tree:
https://git.kernel.org/cgit/linux/kernel/git/djwong/xfs-linux.git/log/?h=twf-hoist
---
Commits in this patchset:
* bcachefs: thread_with_stdio: eliminate double buffering
* bcachefs: thread_with_stdio: convert to darray
* bcachefs: thread_with_stdio: kill thread_with_stdio_done()
* bcachefs: thread_with_stdio: fix bch2_stdio_redirect_readline()
* bcachefs: Thread with file documentation
* darray: lift from bcachefs
* thread_with_file: Lift from bcachefs
* thread_with_stdio: Mark completed in ->release()
* kernel/hung_task.c: export sysctl_hung_task_timeout_secs
* thread_with_stdio: suppress hung task warning
---
MAINTAINERS | 16 +
fs/bcachefs/Kconfig | 1
fs/bcachefs/Makefile | 2
fs/bcachefs/bcachefs.h | 2
fs/bcachefs/btree_types.h | 2
fs/bcachefs/btree_update.c | 2
fs/bcachefs/btree_write_buffer_types.h | 2
fs/bcachefs/chardev.c | 24 +-
fs/bcachefs/error.c | 4
fs/bcachefs/fsck.c | 2
fs/bcachefs/journal_sb.c | 2
fs/bcachefs/sb-downgrade.c | 3
fs/bcachefs/sb-errors_types.h | 2
fs/bcachefs/sb-members.h | 2
fs/bcachefs/subvolume.h | 1
fs/bcachefs/subvolume_types.h | 2
fs/bcachefs/super.c | 9 -
fs/bcachefs/thread_with_file.c | 299 -------------------------
fs/bcachefs/thread_with_file.h | 41 ---
fs/bcachefs/thread_with_file_types.h | 16 -
fs/bcachefs/util.h | 29 --
include/linux/darray.h | 59 +++--
include/linux/darray_types.h | 22 ++
include/linux/thread_with_file.h | 71 ++++++
include/linux/thread_with_file_types.h | 25 ++
kernel/hung_task.c | 1
lib/Kconfig | 3
lib/Makefile | 3
lib/darray.c | 12 +
lib/thread_with_file.c | 379 ++++++++++++++++++++++++++++++++
30 files changed, 596 insertions(+), 442 deletions(-)
delete mode 100644 fs/bcachefs/thread_with_file.c
delete mode 100644 fs/bcachefs/thread_with_file.h
delete mode 100644 fs/bcachefs/thread_with_file_types.h
rename fs/bcachefs/darray.h => include/linux/darray.h (66%)
create mode 100644 include/linux/darray_types.h
create mode 100644 include/linux/thread_with_file.h
create mode 100644 include/linux/thread_with_file_types.h
rename fs/bcachefs/darray.c => lib/darray.c (56%)
create mode 100644 lib/thread_with_file.c