summaryrefslogtreecommitdiff
path: root/fs/bcachefs/thread_with_file.c
diff options
context:
space:
mode:
authorDarrick J. Wong <djwong@kernel.org>2024-02-10 11:23:01 -0800
committerKent Overstreet <kent.overstreet@linux.dev>2024-03-13 21:22:13 -0400
commitab6752e24ef1eb4ef2cf35c4aa87eb1c9854e1a1 (patch)
treead262db6f0727826112c25358627f3bd88a225df /fs/bcachefs/thread_with_file.c
parent1cbae651e5c875f4d128211b3c732ee545f45424 (diff)
bcachefs: thread_with_file: create ops structure for thread_with_stdio
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>
Diffstat (limited to 'fs/bcachefs/thread_with_file.c')
-rw-r--r--fs/bcachefs/thread_with_file.c16
1 files changed, 6 insertions, 10 deletions
diff --git a/fs/bcachefs/thread_with_file.c b/fs/bcachefs/thread_with_file.c
index fc4f97c56021..d298a8e8d2b9 100644
--- a/fs/bcachefs/thread_with_file.c
+++ b/fs/bcachefs/thread_with_file.c
@@ -155,7 +155,7 @@ static int thread_with_stdio_release(struct inode *inode, struct file *file)
bch2_thread_with_file_exit(&thr->thr);
darray_exit(&thr->stdio.input.buf);
darray_exit(&thr->stdio.output.buf);
- thr->exit(thr);
+ thr->ops->exit(thr);
return 0;
}
@@ -266,32 +266,28 @@ static int thread_with_stdio_fn(void *arg)
{
struct thread_with_stdio *thr = arg;
- thr->fn(thr);
+ thr->ops->fn(thr);
thread_with_stdio_done(thr);
return 0;
}
int bch2_run_thread_with_stdio(struct thread_with_stdio *thr,
- void (*exit)(struct thread_with_stdio *),
- void (*fn)(struct thread_with_stdio *))
+ const struct thread_with_stdio_ops *ops)
{
stdio_buf_init(&thr->stdio.input);
stdio_buf_init(&thr->stdio.output);
- thr->exit = exit;
- thr->fn = fn;
+ thr->ops = ops;
return bch2_run_thread_with_file(&thr->thr, &thread_with_stdio_fops, thread_with_stdio_fn);
}
int bch2_run_thread_with_stdout(struct thread_with_stdio *thr,
- void (*exit)(struct thread_with_stdio *),
- void (*fn)(struct thread_with_stdio *))
+ const struct thread_with_stdio_ops *ops)
{
stdio_buf_init(&thr->stdio.input);
stdio_buf_init(&thr->stdio.output);
- thr->exit = exit;
- thr->fn = fn;
+ thr->ops = ops;
return bch2_run_thread_with_file(&thr->thr, &thread_with_stdout_fops, thread_with_stdio_fn);
}