Filipe Manana 8e907f
From: Naohiro Aota <naohiro.aota@wdc.com>
Filipe Manana 8e907f
Date: Tue, 25 Feb 2020 12:56:07 +0900
Filipe Manana 8e907f
Git-commit: b25c19f49ef294865462bf741e0430c59295ac15
Filipe Manana 8e907f
Patch-mainline: v5.7-rc1
Filipe Manana 8e907f
References: bsc#1189077
Filipe Manana 8e907f
Subject: [PATCH] btrfs: handle invalid profile in chunk allocation
Filipe Manana 8e907f
Filipe Manana 8e907f
Do not BUG_ON() when an invalid profile is passed to __btrfs_alloc_chunk().
Filipe Manana 8e907f
Instead return -EINVAL with ASSERT() to catch a bug in the development
Filipe Manana 8e907f
stage.
Filipe Manana 8e907f
Filipe Manana 8e907f
Suggested-by: Johannes Thumshirn <Johannes.Thumshirn@wdc.com>
Filipe Manana 8e907f
Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Filipe Manana 8e907f
Reviewed-by: Josef Bacik <josef@toxicpanda.com>
Filipe Manana 8e907f
Signed-off-by: Naohiro Aota <naohiro.aota@wdc.com>
Filipe Manana 8e907f
Reviewed-by: David Sterba <dsterba@suse.com>
Filipe Manana 8e907f
Signed-off-by: David Sterba <dsterba@suse.com>
Filipe Manana 8e907f
Signed-off-by: Filipe Manana <fdmanana@suse.com>
Filipe Manana 8e907f
---
Filipe Manana 8e907f
 fs/btrfs/volumes.c | 5 ++++-
Filipe Manana 8e907f
 1 file changed, 4 insertions(+), 1 deletion(-)
Filipe Manana 8e907f
Filipe Manana 8e907f
diff --git a/fs/btrfs/volumes.c b/fs/btrfs/volumes.c
Filipe Manana 8e907f
index 3d35466f34b0..f1c98b01f6ec 100644
Filipe Manana 8e907f
--- a/fs/btrfs/volumes.c
Filipe Manana 8e907f
+++ b/fs/btrfs/volumes.c
Filipe Manana 8e907f
@@ -4773,7 +4773,10 @@ static int __btrfs_alloc_chunk(struct btrfs_trans_handle *trans,
Filipe Manana 8e907f
 	int j;
Filipe Manana 8e907f
 	int index;
Filipe Manana 8e907f
 
Filipe Manana 8e907f
-	BUG_ON(!alloc_profile_is_valid(type, 0));
Filipe Manana 8e907f
+	if (!alloc_profile_is_valid(type, 0)) {
Filipe Manana 8e907f
+		ASSERT(0);
Filipe Manana 8e907f
+		return -EINVAL;
Filipe Manana 8e907f
+	}
Filipe Manana 8e907f
 
Filipe Manana 8e907f
 	if (list_empty(&fs_devices->alloc_list)) {
Filipe Manana 8e907f
 		if (btrfs_test_opt(info, ENOSPC_DEBUG))
Filipe Manana 8e907f
-- 
Filipe Manana 8e907f
2.26.2
Filipe Manana 8e907f