diff options
author | 2025-03-27 14:31:08 +0100 | |
---|---|---|
committer | 2025-03-28 13:51:09 -0400 | |
commit | 7c4cb50e1a39ada75aaaaaedfdaec52d0b8f8bcc (patch) | |
tree | a7589dbc7fd18da3ca78546d308e79c1edf6948c /fs/bcachefs/fs.c | |
parent | bcachefs: fix logging in journal_entry_err_msg() (diff) | |
download | wireguard-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.c | 3 |
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; } |