aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/fs/bcachefs/fs.c
diff options
context:
space:
mode:
authorFlorian Albrechtskirchinger <falbrechtskirchinger@gmail.com>2025-03-27 14:31:08 +0100
committerKent Overstreet <kent.overstreet@linux.dev>2025-03-28 13:51:09 -0400
commit7c4cb50e1a39ada75aaaaaedfdaec52d0b8f8bcc (patch)
treea7589dbc7fd18da3ca78546d308e79c1edf6948c /fs/bcachefs/fs.c
parentbcachefs: fix logging in journal_entry_err_msg() (diff)
downloadwireguard-linux-7c4cb50e1a39ada75aaaaaedfdaec52d0b8f8bcc.tar.xz
wireguard-linux-7c4cb50e1a39ada75aaaaaedfdaec52d0b8f8bcc.zip
bcachefs: Fix bch2_fs_get_tree() error path
When a filesystem is mounted read-only, subsequent attempts to mount it as read-write fail with EBUSY. Previously, the error path in bch2_fs_get_tree() would unconditionally call __bch2_fs_stop(), improperly freeing resources for a filesystem that was still actively mounted. This change modifies the error path to only call __bch2_fs_stop() if the superblock has no valid root dentry, ensuring resources are not cleaned up prematurely when the filesystem is in use. Signed-off-by: Florian Albrechtskirchinger <falbrechtskirchinger@gmail.com> Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
Diffstat (limited to '')
-rw-r--r--fs/bcachefs/fs.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/fs/bcachefs/fs.c b/fs/bcachefs/fs.c
index fbca200f7636..89a30bde1220 100644
--- a/fs/bcachefs/fs.c
+++ b/fs/bcachefs/fs.c
@@ -2290,7 +2290,8 @@ err_stop_fs:
goto err;
err_put_super:
- __bch2_fs_stop(c);
+ if (!sb->s_root)
+ __bch2_fs_stop(c);
deactivate_locked_super(sb);
goto err;
}