summaryrefslogtreecommitdiffstats
path: root/fs/bcachefs/thread_with_file.h (follow)
Commit message (Collapse)AuthorAgeFilesLines
* bcachefs: bch2_stdio_redirect_readline_timeout()Kent Overstreet2024-07-151-0/+1
| | | | Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
* bcachefs: twf: convert bch2_stdio_redirect_readline() to darrayKent Overstreet2024-07-151-1/+2
| | | | | | | | | We now read the line from the buffer atomically, which means we have to allow the buffer to grow past STDIO_REDIRECT_BUFSIZE if we're waiting for a full line - this behaviour is necessary for stdio_redirect_readline_timeout() in the next patch. Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
* bcachefs: Fix null ptr deref in twf from BCH_IOCTL_FSCK_OFFLINEKent Overstreet2024-04-171-0/+3
| | | | | | We need to initialize the stdio redirects before they're used. Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
* bcachefs: thread_with_file: add f_ops.flushKent Overstreet2024-03-141-1/+1
| | | | | | | | Add a flush op, to return the exit code via close(). Also update bcachefs usage to use this to return fsck exit codes. Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
* bcachefs: thread_with_file: allow ioctls against these filesDarrick J. Wong2024-03-141-0/+1
| | | | | | | | Make it so that a thread_with_stdio user can handle ioctls against the file descriptor. Signed-off-by: Darrick J. Wong <djwong@kernel.org> Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
* bcachefs: thread_with_file: create ops structure for thread_with_stdioDarrick J. Wong2024-03-141-6/+10
| | | | | | | | Create an ops structure so we can add more file-based functionality in the next few patches. Signed-off-by: Darrick J. Wong <djwong@kernel.org> Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
* bcachefs: thread_with_file: fix various printf problemsDarrick J. Wong2024-03-141-2/+2
| | | | | | | | | | Experimentally fix some problems with stdio_redirect_vprintf by creating a MOO variant with which we can experiment. We can't do a GFP_KERNEL allocation while holding the spinlock, and I don't like how the printf function can silently truncate the output if memory allocation fails. Signed-off-by: Darrick J. Wong <djwong@kernel.org> Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
* bcachefs: thread_with_file: allow creation of readonly filesDarrick J. Wong2024-03-141-0/+3
| | | | | | | | | | Create a new run_thread_with_stdout function that opens a file in O_RDONLY mode so that the kernel can write things to userspace but userspace cannot write to the kernel. This will be used to convey xfs health event information to userspace. Signed-off-by: Darrick J. Wong <djwong@kernel.org> Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
* bcachefs: Thread with file documentationKent Overstreet2024-03-131-0/+32
| | | | Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
* bcachefs: thread_with_stdio: kill thread_with_stdio_done()Kent Overstreet2024-03-131-9/+2
| | | | | | | Move the cleanup code to a wrapper function, where we can call it after the thread_with_stdio fn exits. Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
* bcachefs: thread_with_stdio: convert to darrayKent Overstreet2024-03-131-2/+5
| | | | | | | | | | - eliminate the dependency on printbufs, so that we can lift thread_with_file for use in xfs - add a nonblocking parameter to stdio_redirect_printf(), and either block if the buffer is full or drop it on the floor - don't buffer infinitely Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
* bcachefs: thread_with_stdio: eliminate double bufferingKent Overstreet2024-03-131-1/+0
| | | | | | | | | The output buffer lock has to be a spinlock so that we can write to it from interrupt context, so we can't use a direct copy_to_user; this switches thread_with_file_read() to use fault_in_writeable() and copy_to_user_nofault(), similar to how thread_with_file_write() works. Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
* bcachefs: factor out thread_with_file, thread_with_stdioKent Overstreet2024-01-061-0/+41
thread_with_stdio now knows how to handle input - fsck can now prompt to fix errors. Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>