diff options
author | Kent Overstreet <kent.overstreet@linux.dev> | 2024-04-06 04:30:30 +0200 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@linux.dev> | 2024-04-06 19:50:25 +0200 |
commit | 05801b6526156aefe55c0440fab877109c9a89c5 (patch) | |
tree | 61bed46f185cbf038df837c7d265ee3e0183c7ea /fs/bcachefs/chardev.c | |
parent | bcachefs: Fix BCH_IOCTL_FSCK_OFFLINE for encrypted filesystems (diff) | |
download | linux-05801b6526156aefe55c0440fab877109c9a89c5.tar.xz linux-05801b6526156aefe55c0440fab877109c9a89c5.zip |
bcachefs: Disable errors=panic for BCH_IOCTL_FSCK_OFFLINE
BCH_IOCTL_FSCK_OFFLINE allows the userspace fsck tool to use the kernel
implementation of fsck - primarily when the kernel version is a better
version match.
It should look and act exactly like the normal userspace fsck that the
user expected to be invoking, so errors should never result in a kernel
panic.
We may want to consider further restricting errors=panic - it's only
intended for debugging in controlled test environments, it should have
no purpose it normal usage.
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
Diffstat (limited to '')
-rw-r--r-- | fs/bcachefs/chardev.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/fs/bcachefs/chardev.c b/fs/bcachefs/chardev.c index 1e033df330b0..72781aad6ba7 100644 --- a/fs/bcachefs/chardev.c +++ b/fs/bcachefs/chardev.c @@ -234,6 +234,10 @@ static long bch2_ioctl_fsck_offline(struct bch_ioctl_fsck_offline __user *user_a thr->c = bch2_fs_open(devs.data, arg.nr_devs, thr->opts); + if (!IS_ERR(thr->c) && + thr->c->opts.errors == BCH_ON_ERROR_panic) + thr->c->opts.errors = BCH_ON_ERROR_ro; + ret = bch2_run_thread_with_stdio(&thr->thr, &bch2_offline_fsck_ops); out: darray_for_each(devs, i) |