]> 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:50:16 +0000 (12:50 +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 2fd0ee0e6e9310c4a713b0b6cf45526c67d575f7..5d8cf38cb9b9e9f4530d6e7fdca872777737a63a 100644 (file)
@@ -1386,7 +1386,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;
        }