From: Florian Albrechtskirchinger Date: Thu, 27 Mar 2025 13:31:08 +0000 (+0100) Subject: bcachefs: Fix bch2_fs_get_tree() error path X-Git-Tag: v6.15-rc1~83^2~16 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=7c4cb50e1a39ada75aaaaaedfdaec52d0b8f8bcc;p=thirdparty%2Flinux.git 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 Signed-off-by: Kent Overstreet --- diff --git a/fs/bcachefs/fs.c b/fs/bcachefs/fs.c index fbca200f76365..89a30bde12206 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; }