]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
btrfs: output the reason for open_ctree() failure
authorQu Wenruo <wqu@suse.com>
Tue, 10 Dec 2024 04:53:06 +0000 (15:23 +1030)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 13 Mar 2025 11:47:00 +0000 (12:47 +0100)
commit d0f038104fa37380e2a725e669508e43d0c503e9 upstream.

There is a recent ML report that mounting a large fs backed by hardware
RAID56 controller (with one device missing) took too much time, and
systemd seems to kill the mount attempt.

In that case, the only error message is:

  BTRFS error (device sdj): open_ctree failed

There is no reason on why the failure happened, making it very hard to
understand the reason.

At least output the error number (in the particular case it should be
-EINTR) to provide some clue.

Link: https://lore.kernel.org/linux-btrfs/9b9c4d2810abcca2f9f76e32220ed9a90febb235.camel@scientia.org/
Reported-by: Christoph Anton Mitterer <calestyo@scientia.org>
Cc: stable@vger.kernel.org
Reviewed-by: Filipe Manana <fdmanana@suse.com>
Signed-off-by: Qu Wenruo <wqu@suse.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
fs/btrfs/super.c

index ea731fa8bd3504835b6debebabe11d5eebb5b019..139599c42b732fa759475ee4c4c60125ffd14559 100644 (file)
@@ -1340,7 +1340,7 @@ static int btrfs_fill_super(struct super_block *sb,
 
        err = open_ctree(sb, fs_devices, (char *)data);
        if (err) {
-               btrfs_err(fs_info, "open_ctree failed");
+               btrfs_err(fs_info, "open_ctree failed: %d", err);
                return err;
        }